日期:2014-05-20  浏览次数:20643 次

java菜鸟 问的基础问题 希望大家帮忙解答

输出结果:a=2  a=3  no
这段代码里面a=2与case 2匹配之后,继续往下执行,虽说没有遇到break。但是a=2与case 3也不匹配啊,为什么会执行啊

------解决方案--------------------
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break
------解决方案--------------------
引用:

输出结果:a=2  a=3  no
这段代码里面a=2与case 2匹配之后,继续往下执行,虽说没有遇到break。但是a=2与case 3也不匹配啊,为什么会执行啊


从原理上来阐述这个问题: 
switch(表达式) 

case 常量表达式1:语句1; 
.... 
case 常量表达式2:语句2; 
default:语句; 

1.default就是如果没有符合的case就执行它,default并不是必须的. 
2.case后的语句可以不用大括号. 
3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型. 
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.