顺序结构
java默认的执行流程是顺序结构,内容按照代码的顺序,会从上到下依次执行
分支结构
if语句
if语句在代码中起判断作用,有三种格式
格式一:
if (关系表达式){
语句体;
}
执行流程:
1.首先计算关系表达式里的值
2.如果关系表达式的值为true就执行语句体
3.如果关系表达式的值为false就不执行语句体
4.继续执行后面的其他语句
格式二:
if (关系表达式){
语句1;
}else{
语句2;
}
执行流程:
1.首先计算关系表达式里的值
2.如果关系表达式的值为true就执行语句体1
3.如果关系表达式的值为false就执行语句2
4.继续执行后面语句
格式三:
if (关系表达式1){
语句体1;
}else if (关系表达式2){
语句体2;
}
....
else{
语句体n+1;
}
执行流程:
1.首先计算关系表达式1的值
2.如果为true就执行语句体1;如果为false就执行关系表达式2的值
3.如果为true就执行语句体2;如果为false就计算关系表达式3的值
4.......
5.如果所有关系表示的结果都为false,就执行语句体n+1
switch语句
格式:
switch(){
case 值1:
语句体1;
break;
case 值1:
语句体1;
break;
case 值1:
语句体1;
break;
......
default:
语句体n+1;
break;
}
执行流程:
1.首先计算表达式的值。
2.依次和case后面的值就行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束
3.如果所有case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句
switch其他知识点
default的位置和省略
位置:default不一定写在最下面,我们可以写在任意的位置,只是习惯写在最下面
省略:default可以省略,语法不会有问题,但是不建议省略。
case穿透
就是语句中没有写break导致的。
执行流程:首先还是会拿着小括号中的表达式的值跟下面的每一个case进行匹配,如果匹配上了,就会执行对应的语句体,如果发现了break,就会结束这个switch语句,如果没有发现break程序就会继续执行下一个case的语句体,一直遇到break或者大括号为止。
使用场景:如果多个case的语句体重复了,那么我们就考虑利用case穿透去简化代码
switch新特性
jdk12往后才有的这个特点
switch代码可以简化为
使用->来指示语句体,并且当语句体只有一行代码的时候可以直接省略大括号
switch和if第三种格式各自的使用场景
if的第三种格式:一般用于对于范围的判断
switch:把有限个数据一 一例举出来,让我们任选其一
循环结构
循环结构:重复的做某件事情,具有明确的开始和停止标记
循环结构分类:for,while,do...while
for循环
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
while循环
while(条件判断语句){
循环体语句;
条件控制语句;
}
for和while的区别
for循环中:知道循环次数或者循环范围
while循环:不知道循环次数和范围,只知道循环的结束条件
do...while循环
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
//先做再判断