顺序结构
代码逐行执行,执行逻辑为线性逻辑
选择结构
代码遇到选择结构根据关系表达式的不同计算结果执行不同的操作
if语句
语法结构
|
|
执行流程
- 计算关系表达式
- 若为 true 执行语句体内的语句,若为 false 则跳过语句体内的语句
- 继续执行语句体外的语句
if-else语句
语法结构
|
|
执行流程
- 计算关系表达式
- 若为 true 执行语句体1内的语句,若为 false 则执行语句体2内的语句
- 继续执行语句体外的语句
if-else if语句
语法结构
|
|
执行流程
- 计算关系表达式1
- 若为 true 执行语句体1内的语句,若为 false 则计算关系表达式2
- 若为 true 执行语句体2内的语句,若为 false 则计算关系表达式3
- 以此类推
- 若所有的关系表达式为 false 则执行语句体n+1
switch语句
语法结构
|
|
执行流程
- 计算表达式的值
- 依次与case后面的值比较。若有对应的值就会执行对应的语句体,在执行过程中遇到break结束整个switch语句
- 若与所有的case后面的值不匹配,便会执行default内的语句体
格式说明
- 表达式取值只能为byte,short,int,char,enum,string
- case后面是与关系式匹配的值,只能是字面量不能说变量且不允许重复
注意事项
default
可以放在任意位置,也可以省略不写- 不写
break
会发生case穿透问题,在case匹配过程中若没有break会执行下一个case的语句体,直到遇到 break/大括号
JDK12的新特性
语法格式
|
|
循环结构
for循环
语法格式
|
|
执行流程
- 执行初始化语句
- 执行条件判断语句,检验其结果
- 若为 false,循环结束
- 若为 true,执行循环体语句
- 执行条件控制语句
- 单次循环结束后继续执行条件判断语句
while循环
语法格式
|
|
执行流程
- 执行初始化语句
- 执行条件判断语句,检验其结果
- 若为 false,循环结束
- 若为 true,执行循环体语句
- 执行条件控制语句
- 单次循环结束后继续执行条件判断语句
提示
for和while的对比
相同点:运行规则相同
不同点
- for循环中控制循环的变量在循环结束后无法被访问,while循环中可以继续使用
- for循环限定循环次数和范围,while循环不知道循环次数
do-while循环
语法结构
|
|
执行流程
- 执行初始化语句
- 先执行条件判断语句
- 执行条件控制语句
- 单次循环结束后继续执行条件判断语句
- 若为 false,循环结束
- 若为 true,执行循环体语句
循环控制语句
break
:立即终止当前所在的循环
continue
:跳过当前循环的剩余部分,直接进入下一次循环
在嵌套循环中,break
和 continue
仅影响它所在的最近一层循环