、基本格式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
...
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表 达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如 表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
2、case语句的穿透问题(向下穿透)
1)定义:某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句
2)解决方法:
在每一个case语句之后加上一个break;(作用:结束switch语句 ,使程序继续执行后面的语句)
3、if分支和switch分支的选择:
1)分支比较多且无法穷尽或进行大量列举时最好用if
2)如果分支数量不是很多,但是使用if代码代码量比较大的时候,可以选用switch
关键在于:思路一样,语法不一样
4、switch使用注意事项
1)switch语句分表达式类型
1))可以放一个整型的变量 如:int num =10; switch(num)
2))可以放一个整型常量 如switch(10)
3))可以放一个返回值是整型的表达式 如:switch (5+5)
4) ) 可以放可以转换为int类型的表达式 如:switch(‘a’+‘a’)
2)case语句可以有多行语句,可以加括号,也可以省略(建议加上)
3)break语句是可选的(加或不加)
4)case值的规定
case的语句格式:case 常量表达式: (空格和冒号不能省)
1))可以是常量 如:case 10:
2))表达式只能是常量表达式 如 case 5+5:
3))default语句的位置可以任意放
4))case的穿透问题同样适用于default(default在case语句下面)
5))如果default语句放到switch语句放到最后,可以不加break;如果不是最后必须加
6))case后面不能是实数
7))case语句之后,默认第一句话不可以定义变量,如果非要定义,加上大括号
8))(xcode)编译器的bug |
|