格式:
switch(表达式值){
case 值1:
当 表达式值 和 值1 匹配时执行的代码
break;
case 值2:
当 表达式值 和 值2 匹配时执行的代码
break;
...
case 值n:
当 表达式值 和 值n 匹配时执行的代码
break;
default:
当 表达式值 和前面的case后的值都不匹配时执行的代码
break;
}
执行流程:
拿到 表达式值 依次从上往下匹配case后的值,一旦匹配上就执行case后的代码,然后遇到break结束switch
如果 表达式值 和前面的case后的值都不匹配 就执行default中的代码,然后结束switch
注意事项:
switch 的注意事项:
1. 表达式值: 在jdk1.5及之前支持: byte ,short,int,char
在jdk1.5之后支持:String ,enum(枚举)
不支持: long , float ,double ,boolean (记住)
case 的注意事项:
1. case后面只允许常量或者常量表达式
2. 当case后面的值是: byte , short , int , char 类型时, 匹配时使用:==
当case后面的值是:String 类型时, 匹配时使用:equals()
3. 在一个case中定义的并变量是:局部变量,只能在当前case中使用
break的注意事项:
1. break是用来结束switch语句的,当遇到break,程序会跳到switch语句 }的后面
2. 当break省略之后会出现case穿透现象,直到遇到break才结束switch
default 的注意事项:
1. default关键字类似于if多选结构中的else
2. 一般将default语句放置在所有的case语句的后面。
分支结构的总结:
说明一:
if: 做范围判断一般使用if
switch:做固定值判断一般使用switch,因为switch语句的表达式不支持:boolean类型
说明二: if语句和switch语句可以相互转换