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