目录
If语句
If语句的第一种格式
格式:
if(关系表达式){
语句体;
}
执行流程:
I、首先计算关系表达式的值
II、如果关系表达式的值为true就执行语句体
III、如果关系表达式的值为false就不执行语句体
IV、继续执行后面的其他语句
If语句的第二种格式
格式:
if(关系表达式){
语句体1;
} else {
语句体2;
}
执行流程:
I、首先计算关系表达式的值
II、如果关系表达式的值为true就执行语句体1
III、如果关系表达式的值为false就执行语句体2
IV、继续执行后面的其他语句
If语句的第三种格式
格式:
if(关系表达式1){
语句体1;
} else if(关系表达式2){
语句体2;
}
....
else{
语句体n+1;
}
执行流程:
I、首先计算关系表达式1的值
II、如果为true就执行语句体1;如果为false就计算关系表达式2的值
III、如果为true就执行语句体2;如果为false就计算关系表达式3的值
IV、......
V、如果所有关系表达式结果都为false,就执行语句体n+1
从上往下依次进行判断,只要有一个判断为真,就执行对应的语句体,如果所有的判断都为假,就执行else的语句体。
Switch语句
switch语句格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
I、首先计算表达式的值。
II、依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
III、如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。
说明:
- 表达式:(将要匹配的值)取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。
- case:后面跟的是要和表达式进行比较的值(被匹配的值)
- break:表示中断,结束的意思,用来结束switch语句。
- default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
- case后面的值只能是字面量,不能是变量
- case给出的值不允许重复
default的位置和省略
- 位置:default不一定是写在最下面的,我们可以写在任意位置,只不过习惯会写在最下面
- 省略:default可以省略,语法不会有问题,但是不建议省略
case穿透现象,由于语句体中没有写break导致的。
执行流程:
首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。
如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。
如果没有发现break,那么程序会继续下一个case的语句体,一直遇到break或者右大括号为止。
switch在JDK12后的新特性:
switch(表达式){
case 值1 ->{
语句体1;
}
case 值2 ->{
语句体2;
}
...
default ->{
语句体n+1;
}
}
或者
switch(表达式){
case 值1 -> 语句体1;
case 值2 -> 语句体2;
...
default -> 语句体n+1;
}
switch和if第三种格式各自的使用场景
- if的第三种格式:一般用于对范围的判断。
- switch:把有限个数据一一列举出来,让我们任选其一。
for循环
格式:
for(为初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
for(int i = 1;i <= 10;i++){
System.out.pritln("循环");
}
执行流程:
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,执行循环体语句
3.执行条件控制语句
4.回到2.继续执行条件判断语句
- 初始化语句只执行一次
- 判断语句为true,循环继续
- 判断语句为false,循环结束
while循环
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程与for循环相同。
for和while的区别即运用情况的不同
- for循环:知道循环次数或者循环的范围
- while循环:不知道循环的次数和范围,只知道循环的结束条件
do...while循环
格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
1.执行初始化语句
2.执行循环体语句
3.执行条件控制语句
4.执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,回到2.继续执行循环体语句
tips.先执行后判断