顺序结构
是java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行
分支结构
if语句
第一种
格式
if(关系表达式){
语句体;
}
例:12
if (wine>2){ System.out.println(); }
执行流程
1.首先计算关系表达式的值
2.如果关系表达式的值为true就执行语句体
3.如果关系表达式的值为false就不执行语句体
4.继续执行后面的其他语句
注意点
1.大括号的开头可以另起一行书写,但是建议写在第一行的未尾
2.在语句体中,如果只有一句代码,大括号可以省略不写
3.如果对一个布尔类型的交量进行判断,不要用==号
第二种
格式
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程
1.首先计算关系表达式的值
2.如果关系表达式值为true,就执行语句体1
3.如果关系表达式值为false,就执行语句体2
4.继续执行后面的语句
例:34
第三种
格式
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。
*从上往下依次进行判断
只有要有一个判断为真,就执行对应的语句体
如果所有的判断都为假,就执行else的语句体
switch语句
格式
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程
1.首先计算表达式的值。
2.依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
3.如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。
格式说明:
1.表达式:(将匹配的值)取值为byte short int char。JDK5后可以是枚举,JDK7以后可以是String。
2.case:后面跟的是要和表达式进行比较的值 (被匹配的值)
3.break:表示中断,结束的意思,用来结束switch语句。
4.default:表示所有情况都不匹配的时候,就执行该处的内容和if语句的else相似。
5.case后面的值只能是字面量,不能是变量且case给出的值不允许重复
default的位置和省略
1.位置 : defaule不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面
2.省略 : defaule可以省略,语法不会有问题,但是不建议省略。
case穿透(多个语句体重复时可以简化代码)
就是语句体中没有写break导致的。
执行流程:
首先还是会拿着少括号中表达式的值跟下面每一个case进行匹配。
如果匹配上了,就会执行对应的语句体,
如果此时发现了break,那么结束整个switch语句。
如果没有发现break,那么程序会继续执行下一个case的语句体,一直到break成者右大括号为止。
switch和if第三种格式各自的使用场景:
if的第三种格式:一般用于对范围的判断
switch:把有限个数据一一列举出来,让我们任选其一