?switch(int和String类型的字面值或变量){ ?? ??? ??? ??? ?case int和String类型的字面值或变量: ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? ... ?? ??? ??? ??? ? ? break; ?? ??? ??? ??? ?case int和String类型的字面值或变量: ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? ... ?? ??? ??? ??? ? ? break; ?? ??? ??? ??? ?case int和String类型的字面值或变量: ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? java语句; ?? ??? ??? ??? ? ? ... ?? ??? ??? ??? ? ? break; ?? ??? ??? ??? ?... ?? ??? ??? ??? ?default : ?? ??? ??? ??? ?java语句; ?? ??? ??? ??? ?... ?? ??? ??? ?}
1、switch语句的执行原理: ?? ? ? switch后面小括号当中的数据和case后面的数据进行一一匹配,匹配成功的分支执行 ?? ? ? 自上而下 2、匹配成功的分支执行,分支当中最后有break语句的话,整个switch语句终止 3、匹配成功的分支执行,分支中没有break语句的话,直接进入下一个分支执行(不进行匹配) ?? ?这种现象被称为case穿透现象。【提供break语句可以避免穿透】 4、没匹配上执行default分支 5、switch和case后面只能是int或者String类型的后面 ?? ? ? 当然byte,short,char可以直接写到switch,case后,因为他们可以i进行自动转换成int
(现在好像也可以传枚举中的变量,不过不建议使用) 6、case可以合并 ?? ? ? int i = ?(int=1 2 3 都会执行下面的语句) ?? ? ? switch(i){ ?? ? ? ? ? case 1 : case 2 : case 3 : ?? ? ? ? ? ? ?System.out.println("Test code!"); ?? ? ? }
|