package cn.temptation;

 public class Sample01 {
public static void main(String[] args) {
// 程序的流程控制(流程结构):顺序结构、选择结构、循环结构 // 顺序结构:从上向下,顺序执行
System.out.println("出生...");
System.out.println("享受人生...");
System.out.println("挂了...");
}
}
 package cn.temptation;

 public class Sample02 {
public static void main(String[] args) {
// 选择结构:1、if语句块; 2、switch语句块 // if语句块 // 形式1、if(比较表达式) { ... }
int i = 2; // if (i != 3) {
// System.out.println(i);
// } // 注意:
// 1、比较表达式的结果必须是一个boolean类型的值
// 2、if语句如果不使用大括号,语法上可以;但是不使用大括号,if语句块只会影响其后的一行语句 // if (i != 3)
// System.out.println(i); // 下面执行结果为2,3
// if (i != 3) {
// System.out.println(i);
// System.out.println(++i);
// } // 下面执行结果为2,3
// if (i != 3)
// System.out.println(i);
// System.out.println(++i); // 下面执行无结果
// if (i == 3) {
// System.out.println(i);
// System.out.println(++i);
// } // 下面执行结果为3,从执行结果得知,if无大括号的语句块后的第二行语句开始,就不再受if语句块的影响
if (i == 3)
System.out.println(i);
System.out.println(++i);
}
}
 package cn.temptation;

 public class Sample03 {
public static void main(String[] args) {
// 形式2、if(比较表达式) { ... } else { ... }
int i = 2;
int j = 3; if (i == j) {
System.out.println("i等于j");
} else {
System.out.println("i不等于j");
} // 联想一下,这种形式的if结构(if...else结构)和 三元运算符的效果差不多
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample04 {
public static void main(String[] args) {
// 需求:使用if...else...结构获取通过键盘录入的三个数字中最大的一个 // 声明三个变量来接收键盘录入的数字
Scanner input = new Scanner(System.in);
// 一行中声明多个变量
int i, j, k;
System.out.println("输入第一个数字:");
i = input.nextInt();
System.out.println("输入第二个数字:");
j = input.nextInt();
System.out.println("输入第三个数字:");
k = input.nextInt();
input.close(); // 使用if...else...结构比较这三个数字
int temp = 0;
int max = 0; // // 写法1、分步操作
// // ① 先把i、j进行比较得出较大的一个赋值给临时变量temp
// if (i > j) {
// temp = i;
// } else {
// temp = j;
// }
//
// // ② 再把temp、k进行比较得出最大的一个赋值给最终变量max
// if (temp > k) {
// max = temp;
// } else {
// max = k;
// } // 写法2、if...else...的嵌套
if (i > j) {
// 满足该条件时,说明i是i、j中较大的
if (i > k) {
max = i;
} else {
max = k;
}
} else {
// 满足该条件时,说明j是i、j中较大的
if (j > k) {
max = j;
} else {
max = k;
}
} System.out.println("输入的数字为:" + i + "," + j + "," + k + "中,最大的一个数字为:" + max);
}
}
 package cn.temptation;

 public class Sample05 {
public static void main(String[] args) {
// 形式3
// if(比较表达式) { ... }
// else if(比较表达式) { ... }
// else if(比较表达式) { ... }
// ...
// else { ... }
// 执行时,依次判断每一个比较表达式是否为true,如果为true,就执行该if语句块中的内容 // 注意:else if之间有一个空格 int i = 2; // if (i == 3) {
// System.out.println("i等于3");
// } else if (i == 5) {
// System.out.println("i等于5");
// } else {
// System.out.println("i等于其他值");
// } // 注意:如果多个比较表达式均为true(多个条件均成立),那么会执行第1个为true的if语句块中的内容
// 后续为true的if语句块不会再走入了
// if (i < 3) {
// System.out.println("i小于3");
// } else if (i < 5) {
// System.out.println("i小于5");
// } else {
// System.out.println("i等于:" + i);
// } if (i < 5) {
System.out.println("i小于5");
} else if (i < 3) {
System.out.println("i小于3");
} else {
System.out.println("i等于:" + i);
}
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample06 {
public static void main(String[] args) {
// 需求:根据键盘录入的数字,判断输入的数字为奇数还是偶数?(分别使用if结构 和 三元运算符实现)
Scanner input = new Scanner(System.in);
System.out.println("输入一个数字:");
int i = input.nextInt();
input.close(); // 写法1、使用if结构
// if (i % 2 == 0) {
// System.out.println("该数为偶数");
// } else {
// System.out.println("该数为奇数");
// } // 写法2、三元运算符
// 因为三元运算符 和 if...else...结构的相近,考虑直接把if...else结构中的语句放到三元运算符中,这是生搬硬套,语法出错
// (i % 2 == 0) ? (System.out.println("该数为偶数")) : (System.out.println("该数为奇数")); // 变通写法1、本质上和写法1是一样的
// boolean result = (i % 2 == 0) ? true : false;
// if (result) {
// System.out.println("该数为偶数");
// } else {
// System.out.println("该数为奇数");
// } // 变通写法2、纯粹使用三元运算符
// 根据是否为偶数获取相应的字符串
String msg = (i % 2 == 0) ? "该数为偶数" : "该数为奇数";
// 输出字符串的内容
System.out.println(msg);
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample07 {
public static void main(String[] args) {
// 需求:根据键盘录入的分数数字,判断输入的分数是优秀(90~100)、良好(80~89)、及格(60~79)、不及格(0~59)
Scanner input = new Scanner(System.in);
System.out.println("输入一个分数:");
int score = input.nextInt();
input.close(); // 下句表示范围的写法是错误的,画个数轴看一下
// if (score >= 90 || score <= 100) {
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score <= 89) {
System.out.println("良好");
} else if (score >= 60 && score <= 79) {
System.out.println("及格");
} else if (score >= 0 && score <= 59) {
System.out.println("不及格");
} else {
System.out.println("输入的分数应该在【0~100】之间");
} // 注意:仔细看看需求,其实隐含了一个条件:即分数的范围是在0~100之间
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample08 {
public static void main(String[] args) {
// 需求:根据键盘录入的月份数字,判断是哪一个季节?(3~5月为春季,6~8月为夏季,9~11月为秋季,12~2月为冬季)
Scanner input = new Scanner(System.in);
System.out.println("输入一个月份:");
int month = input.nextInt();
input.close(); // 写法1
if (month >= 3 && month <= 5) {
System.out.println("Spring");
} else if (month >= 6 && month <= 8) {
System.out.println("Summer");
} else if (month >= 9 && month <= 11) {
System.out.println("Autumn");
// 下句写法没有满足条件的数字
// } else if (month >= 12 && month <= 2) {
} else if (month == 12 || month == 1 || month == 2) {
System.out.println("Winter");
} else {
System.out.println("输入的月份应该在【1~12】之间");
} // 写法2
int result = month / 3; if (month == 0 || month == 13 || month == 14 || result < 0 || result > 4) {
System.out.println("输入的月份应该在【1~12】之间");
} else if (result < 1) {
System.out.println("Winter");
} else if (result < 2) {
System.out.println("Spring");
} else if (result < 3) {
System.out.println("Summer");
} else if (result < 4) {
System.out.println("Autumn");
} else {
System.out.println("Winter");
} // 编写代码及测试时,要充分考虑,特别是边界值,考虑时不要遗漏
}
}
 package cn.temptation;

 public class Sample09 {
public static void main(String[] args) {
// 选择结构:switch结构 // switch (变量) {
// case 值1:
// break;
// case 值2:
// break;
// ...
// case 值n:
// break;
// default:
// break;
// } // 注意:
// 1、switch后括号中的内容有一些限制:byte、short、int、long、char
// JDK 5后可以使用枚举;JDK 7后可以使用字符串类型
// 2、case:后面的值拿来和switch括号中的内容进行比较的,当比较结果为true时,会执行该case语句块中的内容
// 3、break:英文是中断的意思,也就是说后续都不做了,作用范围到switch右侧的大括号为止
// 4、default:英文是默认的意思,如果case条件的值都不能匹配switch括号中的值,那么执行default语句块中的内容
// 5、switch结构中可以没有default部分,但是要求加上default部分
// 6、switch结构中可以只有default部分,表示默认就执行该default语句块中的内容 int i = 2; switch (i) {
case 1:
System.out.println("i等于1");
break;
case 2:
System.out.println("i等于2");
break;
case 3:
System.out.println("i等于3");
break;
default:
System.out.println("i等于其他值");
break;
} System.out.println("这里不会收到switch结构中的break语句的影响"); switch (i) {
default:
System.out.println("switch结构中只有default部分");
break;
}
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample10 {
public static void main(String[] args) {
// 注意:
// 1、case部分的值不能重复,否则有语法错误:Duplicate case
// 2、default部分不是非得放在switch结构中的最后,可以放在任何和case同级的位置,只是习惯性的放在最后
// 3、放在最后的default部分,可以不写break语句,但是建议写上 // 需求:根据键盘录入的数字,使用switch结构判断是星期几
Scanner input = new Scanner(System.in);
System.out.println("输入一个数字作为星期几:");
int weekDay = input.nextInt();
input.close(); switch (weekDay) {
// default部分可以放在switch结构的最前端
// default:
// System.out.println("输入不正确");
// break;
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
// default部分可以放在switch结构的任意位置
// default:
// System.out.println("输入不正确");
// break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("输入不正确");
// 写在最后的default部分中的break语句可以省略不写
// break;
}
}
}
 package cn.temptation;

 public class Sample11 {
public static void main(String[] args) {
// switch结构在JDK 7后支持字符串,case后就可以使用字符串
String course = "Java"; switch (course) {
case "Android":
System.out.println("Android是主流的移动开发平台");
break;
case "Java":
System.out.println("Java真简单");
break;
case "MySQL":
System.out.println("MySQL是主流的数据库");
break;
default:
System.out.println("想混口饭吃,总得会一样!");
break;
}
}
}
 package cn.temptation;

 public class Sample12 {
public static void main(String[] args) {
// 特别注意:
// switch结构中,case部分需要结合break语句使用,如果只写case部分不写其相应的break语句,会发生"case击穿"现象
// 如果case部分没有相应的break语句,当该case条件满足时,执行该case部分的语句内容,并一直向下执行(无视其他case条件),直到遇见break为止
// 如果一直没有遇见break,以switch右侧的大括号(switch结构作用域右侧的边界)作为执行结束的依据 int i = 2; switch (i) {
case 1:
System.out.println("i等于1");
break;
case 2:
System.out.println("i等于2");
case 3:
System.out.println("i等于3");
// break;
default:
System.out.println("i等于其他值");
break;
} System.out.println("这里会不会被执行到?");
}
}
 package cn.temptation;

 public class Sample13 {
public static void main(String[] args) {
int i = 2; // 问题1
// switch (i) {
// default:
// i++;
// break;
// case 2:
// ++i;
// break;
// case 3:
// ++i;
// break;
// case 4:
// ++i;
// break;
// }
//
// System.out.println(i); // 3 // default部分放在switch结构的最前面,也不会第一个执行,也优先匹配case条件 // 问题2
switch (i) {
default:
i++;
case 3:
++i;
case 4:
++i;
} System.out.println(i);
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample14 {
public static void main(String[] args) {
// 需求:根据键盘录入的数字,判断是什么季节?(分别使用if结构 和 switch结构)
Scanner input = new Scanner(System.in);
System.out.println("输入一个月份:");
int month = input.nextInt();
input.close(); // 写法1、if结构
if (month >= 3 && month <= 5) {
System.out.println("Spring");
} else if (month >= 6 && month <= 8) {
System.out.println("Summer");
} else if (month >= 9 && month <= 11) {
System.out.println("Autumn");
} else if (month == 12 || month == 1 || month == 2) {
System.out.println("Winter");
} else {
System.out.println("输入的月份应该在【1~12】之间");
} // 写法2、switch结构
// switch (month) {
// case 1:
// System.out.println("Winter");
// break;
// case 2:
// System.out.println("Winter");
// break;
// case 3:
// System.out.println("Spring");
// break;
// case 4:
// System.out.println("Spring");
// break;
// case 5:
// System.out.println("Spring");
// break;
// case 6:
// System.out.println("Summer");
// break;
// case 7:
// System.out.println("Summer");
// break;
// case 8:
// System.out.println("Summer");
// break;
// case 9:
// System.out.println("Autumn");
// break;
// case 10:
// System.out.println("Autumn");
// break;
// case 11:
// System.out.println("Autumn");
// break;
// case 12:
// System.out.println("Winter");
// break;
// default:
// System.out.println("输入的月份应该在【1~12】之间");
// break;
// } // 因为switch结构中的很多case条件都做的是相同的事情,所以考虑优化一下写法
// 考虑把做相同事情的case条件合并到一起,使用case击穿,这样可以省略一些重复的代码
switch (month) {
case 12:
case 1:
case 2:
System.out.println("Winter");
break;
// 下句写法语法错误:The operator || is undefined for the argument type(s) int, int
// case 3 || 4 || 5:
case 3:
case 4:
case 5:
System.out.println("Spring");
break;
case 6:
case 7:
case 8:
System.out.println("Summer");
break;
case 9:
case 10:
case 11:
System.out.println("Autumn");
break;
default:
System.out.println("输入的月份应该在【1~12】之间");
break;
}
}
// if结构 和 switch结构的区别:
// 1、if结构的括号内使用的是比较表达式,得到的结果是boolean类型的值
// 2、switch结构的case后面跟的是用来匹配的值 // if结构 和 switch结构的选择:
// 1、if结构用于条件描述的范围比较大的场合
// 2、switch结构用于少量的有特定的值进行比较的场合
}

【原】Java学习笔记005 - 流程控制的更多相关文章

  1. 【原】Java学习笔记007 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // for循环 // ...

  2. 【原】Java学习笔记006 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:写一万次&q ...

  3. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  4. Java学习笔记之---流程控制语句

    Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...

  5. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

  6. PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数

    前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...

  7. JavaSE学习笔记03流程控制

    Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...

  8. C#学习笔记_04_流程控制

    04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...

  9. 0039 Java学习笔记-多线程-线程控制、线程组

    join线程 假如A线程要B线程去完成一项任务,在B线程完成返回之前,不进行下一步执行,那么就可以调用B线程的join()方法 join()方法的重载: join():等待不限时间 join(long ...

随机推荐

  1. so库链接和运行时选择哪个路径下的库?

    总结今天遇到的一个so库链接.运行问题. 这几天修改了xapian的源码,重新编译so库,再重新编译之前的demo程序,跑起来后却发现执行的函数并非我修改过的,使用的还是老版本.折腾了一会儿,发现是因 ...

  2. Cassandra与Mongo的事务实现之分布式协议

    摘要 NoSql不同于关系型数据库,是分布式存储,因此想要实现关系型数据库中的事务就不是那么简单了.本文结合Cassandra中的paxos和Mongo的two phase commit来谈谈Nosq ...

  3. 【视频】使用ASP.NET Core开发GraphQL服务

    GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL来自Facebook,它于2012年开始开发,2015年开源. GraphQL与编程语言无关,可以使用很 ...

  4. 在asp.net web api 2 (ioc autofac) 使用 Serilog 记录日志

    Serilog是.net里面非常不错的记录日志的库,另外一个我认为比较好的Log库是NLog. 在我个人的asp.net web api 2 基础框架(Github地址)里,我原来使用的是NLog,但 ...

  5. 【Storm篇】--Storm 容错机制

    一.前述 Storm容错机制相比其他的大数据组件做的非常不错. 二.具体原因 结合Storm集群架构图: 我们的程序提交流程如下:   其中各个组件的作用如下: Nimbus资源调度任务分配接收jar ...

  6. Python内置函数(13)——complex

    英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or convert ...

  7. AttributeError: module 'pip' has no attribute 'main'

    Pycharm在运行pip安装模块是报错如下: 解决方法: 找到安装路径下的packaging_tool.py文件修改如下: 我的路径为D:\Program Files\JetBrains\PyCha ...

  8. IView组件化之部署及按钮学习

    IView是什么? iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品. Npm安装IView npm install iview 在main.js中配置I ...

  9. 使用dotnet build时复制引用dll到生成目录

    默认配置下dotnet build只会输出项目代码的dll,依赖用的是dotnet缓存中的dll,只有dotnet publish才会把依赖的dll一起输出到生成目录. 在项目csproj文件中添加以 ...

  10. Spring系列(七) Spring MVC 异常处理

    Servlet传统异常处理 Servlet规范规定了当web应用发生异常时必须能够指明, 并确定了该如何处理, 规定了错误信息应该包含的内容和展示页面的方式.(详细可以参考servlet规范文档) 处 ...