switch-case:
①.switch语句中的变量仅允许byte,short,char,int,enum(枚举JDK1.5及以后版本允许),String(字符串JDK1.7及以后版本允许)。
②.case语句的值必须与switch的值类型相同(不存在隐式类型转换),且其值必须为常量或者字面量。
③.当switch值与case值相等时,开始执行case之后的语句直到遇见break语句或者return语句或执行到switch末尾才会跳出switch语句。
④.switch语句可以包含一个default分支(但一个switch不能出现多个default分支)当switch不匹配所有case时会执行default,default可以出现在任何位置不过建议在末尾。
很有意思的是default在中间执行时也会遵守switch的结束规则。
Switch(1){
case 2:
System.out.println("+");
default:
System.out.pritln("*");
case 3:
System.out.println("/");
}
其结果为
*
/
当default后有匹配case时它会优先遍历case。
Switch(3){
case 2:
System.out.println("+");
default:
System.out.pritln("*");
case 3:
System.out.println("/");
}
其结果为
/
由上可知switch-case在从上往下的规则会优先遍历case来寻找匹配的case语句进行执行。