一般形式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
意思是先计算表达式的值,再逐个和case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。
与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;
而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
1、switch语句
语法格式:
switch(表达式){
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;
…
default:
语句;
break;
}
–>switch、case、break、default是Java关键字
–>JDK1.7后,switch后的表达式可以是int、short、byte、char、枚举类型、String类型表达式。
–>case用于与表达式进行匹配。
–>break用于终止后续语句的执行。
–>default是可选的,当其他条件都不匹配时执行default。
执行规律:
1)计算switch后表达式的值。
2)将计算结果从上至下依次与case后的常量值比较。
3)如果相等就执行该常量后的代码块,遇到break语句就结束。
4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。
注意事项:
1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。
2)case常量值不能相同。
3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。
2、 switch与多重if异同点
相同点:
都是用来处理多分支条件的结构
不同点:
switch选择结构只能处理等值条件判断的情况
多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况
执行规律:
根据表达式的结果,去匹配case后面的常量值,匹配上哪一个常量值,就执行里面的代码块,执行完代码块执行break,结束整个switch选择结构,继续往下执行switch选择结构后面的代码
如果表达式的值与所有的case常量值都不匹配,则执行default语句中的代码m,再执行break结束整个switch选择结构,继续往下执行switch选择结构后面的代码
注意事项:
1)表达式的值可以是int、short、byte、char、枚举类型、String类型(JDK1.5版本以后)
2)switch中case常量值不能相同
3)default语句相当于if选择结构中的else语句,当表达式的值与所有的case常量值不匹配的时候,执行default里的语句
4)default语句可以省略不写,当表达式的值与所有case常量值不匹配并且没有default语句,那么整个switch结构就不执行
5)default语句可以写在switch结构中任意位置,但一般写在switch结构的最后位置
6)break的作用是结束switch选择结构,如果没有break,会产生“case穿透”现象,这个现象可以合理使用
switch选择结构和多分支if选择结构的异同点:
相同点:
都是能处理多分支的情况
不同点:
switch选择结构只能处理等值情况
多分支if选择结构既可以处理等值情况,也可以处理变量处于某个连续值的情况
版权归原作者 五八同城 所有, 如有侵权,请联系我们删除。