一、分支结构
(一)if语句
种类 | 格式 | 执行流程 |
if | if(关系表达式){ 语句体; } | 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体 |
if...else | if(关系表达式) { 语句体1; }else { 语句体2; } | 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句体2 |
if...else if ...else | if (判断条件1) { 执行语句1; } else if (判断条件2) { 执行语句2; } ... }else if (判断条件n) { 执行语句n; } else { 执行语句n+1; } | 首先判断关系表达式1看其结果是true还是false 如果是true就执行语句体1 如果是false就继续判断关系表达式2看其结果是true还是false 如果是true就执行语句体2 如果是false就继续判断关系表达式…看其结果是true还是false … 如果没有任何关系表达式为true,就执行语句体n+1。 |
(二)switch语句
第一点: switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其它类型的值,程序会报错。
但是在JDK5.0中引入的新特性enum枚举也可以作为switch语句表达式的值,在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。
第二点:case穿透(下坠)
在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。
public static void main(String[] args) {
System.out.println("请输入月份:");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
switch(month) {
case 3:
case 4:
case 5:System.out.println("春季"); break;
case 6:
case 7:
case 8:System.out.println("夏季"); break;
case 9:
case 10:
case 11:System.out.println("秋季"); break;
case 12:
case 1:
case 2:System.out.println("冬季"); break;
default:System.out.println("月份输入错误");
}
}
(三)if和switch的区别
相同点 | 不同点 |
都可以表达分支结构 | 1、if语句格式相对灵活,更加强大,switch语句相对弱小。所有的switch语句都可以被if语句替代。 2、if语句更多的是做一些连续性的判断,而switch语句更多的是做一些离散性的匹配 3、if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以相对switch的效率高一些。 |
注意!
if后可以没有大括号,但是只可以限制离它最近的一条语句,所以为了靠谱尽量写上大括号。
二、循环结构
(一)循环格式
种类 | 格式 | 执行流程 | 例如 |
for | for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ } | 执行顺序:① ②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化 ②负责判断是否满足循环条件,不满足则跳出循环 ③具体执行的语句 ④循环后,循环条件所涉及变量的变化情况 | int sum = 0; for(int i=1;i<=100;i++) { sum=sum+i; } System.out.println("求和的值为:"+sum); |
while | 初始化表达式① while(布尔表达式②){ 循环体③ 步进表达式④ } | 执行顺序:①②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句。 ④循环后,循环变量的变化情况 | int a = 1; while(a<=100) { System.out.println(a); a++; } |
do while |
初始化表达式① do{ 循环体③ 步进表达式④ }while(布尔表达式②); | 执行顺序:①③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句 ④循环后,循环变量的变化情况 | int i = 1; do{ System.out.println(i); i++; }while(i<=100); |
种类 | 使用场景 | 作用 |
break | 在选择结构switch语句中、在循环语句中 | 跳出当前switch/循环语句 |
continue | 在循环语句中 | 结束本次循环,继续下一次循环 |
for和while的区别:
for为了循环而定义的变量在for循环结束时就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
注意!最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。推荐使用while(true)
while 循环和do while循环的区别:
while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。