一、if分支结构
根据判定结果的真或者假决定执行某个分支的代码,如果判定结果为真则执行条件语句后面的代码否则则进入到下一个条件语句进行判定
if分支结构的三种格式
格式1:
if(条件语句){
语句体}
格式2:
if(条件表达式){
语句体1;
}else{语句体2;
}
例如一下代码:
格式3
if(条件表达式1){
语句体1;
}elseif(条件表达式2){
语句体2;
}
……
Else{
语句体n+1;
}
例如以下代码:
二、switch分支结构
也是匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好
执行流程:
- 先执行表达式的值,拿这个值去与case后的值进行匹配
- 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支
- 如果case后的值都不匹配则执行default代码
switch的执行流程:
switch(表达式){
case 值1:
执行代码1;
break;
case 值2:
执行代码2;
break;
…….
case 值n-1:
执行代码n-1;
break;
default:
执行代码n;
}
例如以下代码:
switch分支的注意事项:
- 表达式类型只能是byte、short、int、char、String、不支持double、float、long
- case给出的值不允许重复、且只能是字面量、不能是变量
- 不要忘记写break、否则会出现穿透现象
switch的穿透性
如果代码执行到没有break的case块,执行完成后将直接进入下一个case块代码块(而且不会进行匹配),直到遇到break才跳出分支,这就是switch的穿透性;
switch穿透性的使用:
利用switch的穿透性,可以减少代码的使用,让代码看起来更加简洁
四、两者的使用
If在功能上远远大大于switch,if适合做匹配区间,switch适合做值匹配的分支选择