上一期我们讲述了关于if的选择结构,今天我们来学习一下switch选择结构。
首先我们需要了解一下switch的语法结构。
switch选择结构
语法结构:
switch(表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
case 常量3:
代码块3;
break;
..........
case 常量n:
代码块n;
break;
default:
代码块m;
break;
}
执行规则:
根据表达式的内容,会去匹配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语句可以省略不写,它可以写在switch结构中任意位置,但一般写在switch结构的最后位置,当表达式的值与所有case常量值不匹配并且没有default语句,那么整个switch结构就不执行。
5)break的作用是结束switch选择结构,如果没有break,会产生“case穿透”现象,这个现象也可以合理使用。
总结: switch选择结构和多分支if选择结构的异同点。
相同点:
他们都是能处理多分支的情况。
不同点:
switch选择结构只能处理等值情况,而多分支if选择结构既可以处理等值情况,也可以处理变量处于某个连续值的情况。
总结优缺点:面对简单的实际问题实现起来会很快(复制粘贴),缺点就是遇到表达式范围较大的问题,就很鸡肋了,由于case后的值需要和表达式的值一一对应,书写的代码就会很长,显得代码很臃肿(俗称不好看)。