代码从上往下依次执行。
(1)if 语句第一种格式
if(关系表达式){//boolean
语句体;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
(2)if 语句第二种格式
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
注:if代码块和else代码块只会执行其中一个
(3)if 语句第三种格式
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 (表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
说明:在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的语句,如果没找到任何匹配的值,就会执行default后的语句。switch语句中的break关键字将在后面的做具体介绍,此处,我们只需要知道break的作用是跳出switch语句即可。
注意:switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其它类型的值,程序会报错。但是在JDK5.0中引入的新特性enum枚举也可以作为switch语句表达式的值,在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。
if和switch的区别
相同点:都可以表达分支结构
不同点:
(1)if语句格式相对灵活,更加强大,switch语句相对弱小。所有的switch语句都可以被if语句替代。
(2)if语句更多的是做一些连续性的判断,而switch语句更多的是做一些离散性的匹配
(3)if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以相对switch的效率高一些。
格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
格式:
初始化表达式①
while(布尔表达式②){
循环体③
步长表达式④
}
执行流程:
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
格式:
初始化表达式①
do{
循环体③
步长表达式④
}while(布尔表达式②);
执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
注意事项
1、循环条件表达式必须是boolean类型。
2、while循环条件后面,要有一个分号。
使用场景:在选择结构switch语句中、在循环语句中
作用:跳出当前switch/循环语句
使用场景:在循环语句中
作用:结束本次循环,继续下一次循环
break和continue的区别:break 结束整个循环,continue 结束本次循环,继续下一次循环
return:结束当前的方法
system.exit(0):用于虚拟机
