格式:
注意:switch 后面的表达式的数据类型只能是byte short char int 类型
switch(表达式) { case 值1 : 语句体1 ; break ; case 值2 : 语句体2 ; break ; case 值3 : 语句体3 ; break ; ... default : 语句体n+1 ; break ; }
表达式的取值: 可以取 byte , short , int , char ;
jdk1.5以后可以取枚举 ;
jdk1.7以后可以取字符串
执行流程:
计算表达式的值,然后找对应的case的值,如果找到了就执行对应的case的语句体 , 遇到break程序结束;
如果没有找到对应的case , 那么就执行default语句
注意事项:
a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
b:default可以省略吗?
* 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
* 特殊情况:
* case就可以把值固定。
* A,B,C,D
c:break可以省略吗?
* 最后一个可以省略,其他最好不要省略
* 会出现一个现象:case穿透。
* 最终我们建议不要省略
d:default一定要在最后吗?
* 不是,可以在任意位置。但是建议在最后。
e:switch语句的结束条件
* 遇到break就结束了
* 执行到switch的右大括号就结束了
注意事项:
* byte可以作为switch的表达式吗? 可以
* long可以作为switch的表达式吗? 不可以
* String可以作为switch的表达式吗? 不可以,jdk1.7以后可以