分支语句有两种if语句和switch语句
(1)if语句if 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
if 四种形式:单分支、双分支、多分支、嵌套if。
单分支:if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}
双分支:if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}else {
//布尔表达式为false时需执行的代码; }
多分支:if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false但是布尔表达式2为true时执行的代码
}else if(布尔表达式3){
//布尔表达式1和布尔表达式2为false但是布尔表达式3为true时执行的代码
}else{
//布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码}
嵌套if:if(布尔表达式1){
//布尔表达式1为true时执行的代码
if(布尔表达式2){
//布尔表达式1和布尔表达式2均为true时执行的代码
}else{
//布尔表达式1为true,但布尔表达式2均为false时执行的代码
}
}else {
//布尔表达式1为false时执行的代码
}
注意:
1、if分支语句中去掉括号,则对第一行代码有效
2、else不能单独使用
---------------------
(2)switch语句switch分支语句语法:
switch ( 表达式 ) {
case 常量1 :
当表达式的值等于整型常量1时执行的语句;
break;
//当一种情况包含其他情况时
case 常量2 :
当表达式的值等于整型常量2时执行的语句;
break;
---
default:
当表达式的值不满足任何一个case的值时,执行的语句;
}
---------------------
注意:
1、表达式的值能写那些: byte short int char String 枚举
2、 case 的先后顺序是没有要求的 但是一般都是按照从小到大的顺序写
3、case穿透(case后面语句结束没有写上break关键字)执行流会变成 从当前匹配的数据开始执行 知道遇到第一个break为止
break语句的作用:
1、只能在循环体内和switch语句体内使用break语句。
2、当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
3、当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
4、在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。
continue语句作用:
1、continue语句一般形式为:contonue;
2、其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
3、注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分,然后决定是否继续进行。
4、在for循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。循环体内,不论continue是作为何种语言的语句成分,都按上述功能执行,这点与bresk有所不同。
---------------------
两种分支语句的区别:
1. if..else 的功能大于 switch
2. if..else 的比较过程比较繁琐 switch 底层会创建一个跳表直接匹配 效率高 弊端: 创建跳表需要消耗时间和空间
如果比较比较多建议使用 switch 否则选择if...else ;
|
|