三、判断与循环
顺序结构
顺序结构是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。
分支结构
If语句在程序中就是用来判断的
格式一:
if(关系表达式){
语句体;
}
注意事项:
大括号的开头可以另起一行书写,但是建议写在第一行的末尾
在语句体中,如果只有一句代码,大括号可以省略不写
如果一个布尔类型的变量进行判断,不要用 “==” 号
格式二:
if(关系表达式){
语句体1;
}else{
语句体2;
}
格式三:
if(关系表达式1){
语句体1;
}else if (关系表达式2){
语句体2;
}
...
else{
语句体n+1;
}
从上往下依次进行判断,只要有一个判断为真,就执行对应的语句体,如果所有的判断都为假,就执行else的语句体
switch
格式:
switch(表达式){
case 值1:语句体1;break;
case 值2:语句体2;break;
case 值3:语句体3;break;
...
default:语句体n+1;break;
}
注意事项:
-
表达式:(将要匹配的值)取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。
-
case:后面跟的是要和表达式进行比较的值(被匹配的值)。
-
break:表示中断,结束的意思,用来结束switch语句。
-
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
-
case:后面的值只能是字面量,不能是变量。
-
case:给出的值不允许重复。
-
default:可以省略,语法不会有问题,但是不建议省略。
-
default:不一定写在最下面,可以写在任意位置。习惯于写在最后。
-
当语句中缺少break时,会造成case的穿透。
-
JDK12 的switch新特性:
switch(表达式){ case 1 ->{ 语句体1; } case 2 ->语句体2;//若只有一句语句体“{}”可省略 ... default ->{ 语句体n; } }
循环结构
for
格式:
for(int i =1 ; i<=10;i++){
循环语句体;
}
如若i已定义且赋值:
int i = 0
for(;i<=10;i++){
循环语句体;
}
注:初始化语句只执行一次。
如果我们把变量定义在循环里面,那么当前变量只能在本次循环中有效,当本次循环结束后,变量就会从内存中消失
while
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
do while
先执行一次后在进行条件判断
do{
循环体语句;
条件控制语句;
}while (条件判断语句)