三、选择结构与分支结构
3.1 基本if选择结构
-
语法
if(布尔表达式){ //代码块 }
-
执行流程:
- 对布尔表达式进行判断
- 结果为true,则先执行代码块,再执行后续代码
- 结果为false,则跳过代码块,直接执行后续代码
3.2 if else选择结构
-
语法
if(布尔表达式){ //代码块1 }else{ //代码块2 }
-
执行流程
- 对布尔表达式进行判断
- 结果为true,则先执行代码块1,再退出整个结构,执行后续代码
- 结果为false,则先执行代码块2,再退出整个结构,执行后续代码
3.3 多重if选择结构
-
语法
if(布尔表达式1){ //代码块1 }else if(布尔表达式2){ //代码块2 }else if(布尔表达式3){ //代码块3 }else{ //代码块4 }
-
执行流程:
- 表达式1为true,则执行代码块1,再退出整个结构
- 表达式2为true,则执行代码块2,再退出整个结构
- 表达式3为true,则执行代码块3,再退出整个结构
- 以上均为false,则执行代码块4,再退出整个结构
-
相互排斥,有一个为true,其他均不再执行
3.4 嵌套if选择结构
-
语法
if(外层表达式){ if(内层表达式){ //内层代码块1 }else{ //内层代码块2 } }else{ //外层代码块 }
-
执行流程:
- 当外层条件满足时,再判断内层条件
3.5 switch分支结构
-
语法
switch(变量|表达式){ case 值1: 逻辑代码1; case 值2: 逻辑代码2; case 值n: 逻辑代码n; default: 未满足时的逻辑代码; }
-
可判断的类型:byte、short、int、long、String(JDK7+)
-
执行流程
- 如果变量中的值等于1,则执行逻辑代码1;
- 如果变量中的值等于2,则执行逻辑代码2;
- 如果变量中的值等于n,则执行逻辑代码n;
- 如果变量中的值没有匹配的case值时,执行default中的逻辑代码
-
当匹配的case执行后,不会自动退出整个结构,而是继续往下执行
-
break关键字可在匹配的case执行后,跳出整个结构
-
使用于等值判断
3.6 局部变量
- 概念:声明在方法内部的变量,必须先赋值再使用
- 作用范围:定义行开始到所在的代码块结束
- 多个变量,在重合的范围内,不可出现重名(命名冲突)
四、循环结构
4.1 循环的概念
- 概念:通过某个条件,重复执行的一段逻辑代码
4.2 while循环
-
语法:
while(布尔表达式){ //逻辑代码(循环操作) }
-
执行流程:
- 先对布尔表达式进行判断,结果为true,则执行逻辑代码
- 本次执行完毕后,再次进行判断,结果仍为true,则再次执行逻辑代码
- 直至布尔表达式为false时,才会退出循环结构,执行后续代码
-
循环的组成:
- 首次即有入口条件,先判断,再执行,适用于***循环次数不明确***的情况
4.3 do while循环
-
语法:
do{ //逻辑代码(循环操作) }while(布尔表达式);
-
执行流程:
- 先执行一次循环操作之后,再进行布尔表达式的判断
- 如果结果为true,则再次执行循环操作
- 如果结果为false,才会退出循环结构,执行后续代码
-
首次没有入口条件,先执行,再判断,适用于***循环次数不明确***的情况
4.4 for循环
-
语法:
for(初始部分;循环条件;迭代部分){ //循环操作 }
-
执行流程:
- 首次执行初始部分(仅一次)
- 对布尔表达式进行判断,结果为true,则执行逻辑代码
- 本次执行完毕后,执行迭代部分,再次判断,结果仍为true,则再次执行逻辑代码
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码
-
首次即有入口条件,先判断,再执行,适用于***循环次数明确***的情况
4.5 流程控制关键字
break
- 终止、跳出switch、循环结构
continue
- 结束本次,进入下一次循环
4.6 嵌套循环
- 概念:在一个完整的循环结构中,嵌套另一个完整的循环结构