switch
语法结构
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量 :
java语句;
……
break;
case int或String类型的字面值或变量 :
java语句;
……
break;
case int或String类型的字面值或变量 :
java语句;
……
break;
……
default :
java语句;
……
}
执行原理
1、switch的小括号内“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。按照自上而下的顺序依次匹配。
2、匹配成功的分支执行,分支当中没有“break;”语句的话,直接会进入到下一个分支执行(不进行匹配),此现象为case穿透现象。【提供break;语句可以避免穿透】
3、匹配成功的分支执行,分支当中有“break;”语句的话,整个switch语句终止。
4、所有分支都未匹配成功,当有default时,则执行default分支当中的程序。
5、switch后面和case后面只能是int或者String类型的数据,不能探测其他类型。
【当然byte、short,char也可以直接写到switch和case后面,因为它们可以进行自动类型转换。byte、short、char可以自动转换为int类型】
【JDK6及之前版本,只能探测int类型】
6、case语句可以合并,如下代码
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量 : case int或String类型的字面值或变量 :
java语句;
}