switch-case与if-else有相似的作用,都是表达分支的方式。
语法形式:
1 switch(type){
2 case 常量1:
3 do something;
4 break;
5 case 常量2:
6 do something;
7 break;
8 default:
9 do something;
10 break;
11 }
switch语句的特点:
- type和case后面的值都必须是常量或常量表达式;
- break和default尽量不要省略(特殊用途下break可省略);
- 可以将switch语句理解成高速公路,case 常量 为入口,break 为出口;
- switch语句直接根据type的值跳具有相同常量的分支中,在此之前的分支被忽略,并且如果此分支内若没有break,那么将进入紧挨着的下一个分支执行。
- if-else语句则需要从第一个分支开始逐个判断
switch语句也可以用来表示分段函数,常用技巧是用表示式作为type,执行表达式得到0或1则作为case后面的常量。虽然如此,使用switch语句在coding之前需要花更多时间构思,未必值得。