流程控制语句
1. 顺序结构
2. 分支语句
if 语句
if 语句的第一种格式:
if(关系表达式){语句体;}关系表达式为真则执行语句体,否则不执行。
注意事项:
- 大括号的开头可以另起一行书写,但建议写在第一行的末尾。
- 在语句体中,如果只有一句代码,大括号可以省略不写,但个人建议大括号还是不要省略。
- 如果对一个布尔类型的变量进行判断,不要用
==号,直接把变量写在小括号里即可。
if 语句的第二种格式:
if(关系表达式){语句体;}else{语句体2;}只能执行两个语句体中的其中一个。
if 语句的第三种格式:
if(关系表达式){语句体;}elseif(关系表达式2){语句体2;}...else{语句体n+1;}switch 语句
语句格式:
switch(表达式){case值1:语句体1;break;case值2:语句体2;break;...default:语句体n+1;break;}- 表达式为即将匹配的值。
- case 后面跟的是要比较的值,只能是字面量,不能是变量,给出的值不允许重复。
default 的位置和省略:
- 位置:default 不一定是写在最下面的,我们可以写在任意位置,只不过习惯写在最下面。
- 省略:default 可以省略,语法不会出现问题,但不建议省略。
case 穿透:
就是语句体当中没有写 break 导致的。
执行流程:
- 首先还是会拿小括号中表达式的值跟下面每一个 case 进行匹配。
- 如果匹配上,就会执行对应的语句体,如果此时发现了 break,那么结束整个 switch 语句。
- 如果没有发现 break,那么程序就会继续执行下一个 case 的语句体,一直遇见 break 或者右大括号为止。
使用场景:
如果多个 case 的语句体重复了,那么我们考虑利用 case 穿透去简化代码。
switch 新特性(JDK12):
switch(表达式){case值1->{语句体1;}case值2->{语句体2;}...default->{语句体n+1;}}- 若语句体为一句代码时,大括号可以省略。
- 若 switch 可以得到一个结果时,可以把 switch 赋值给一个变量。
if 语句和 switch 语句的使用场景:
- if 的第三种格式:一般用于对范围的判断。
- switch:把有限个数据一一列举出来,让我们任选其一。
3. 循环语句
循环的分类:
- for 循环
- while 循环
- do while 循环
for 循环
格式:
for(初始化语句;条件判断语句;条件控制语句){循环体语句;}- 初始化语句只执行一次。
- 条件判断语句为 true,循环继续。
- 条件判断语句为 false,循环结束。
while 循环
格式:
初始化语句;while(条件判断语句){循环体语句;条件控制语句;}- 初始化语句只执行一次。
- 条件判断语句为 true,循环继续。
- 条件判断语句为 false,循环结束。
for 循环和 while 循环的对比
相同点:运行规则都是一样的。
区别:
- for 循环中:知道循环的次数或者循环的范围。
- while 循环中:不知道循环的次数和范围,只知道循环的结束条件。
do while 循环
格式:
初始化语句;do{循环体语句;条件控制语句;}while(条件判断语句);特点:先执行后判断。