首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

switch的小疑点

2012-05-16 
switch的小问题,在线等public class SwitchTest {public static void main (String []args){System.out.pr

switch的小问题,在线等
public class SwitchTest { 
public static void main (String []args) {
System.out.println (switchIt(4)); 
}
public static int switchIt(int x) {
int j = 1; 
switch (x) { 
case 1: j++; 
case 2: j++; 
case 3: j++; 
case 4: j++;
case 5: j++; 
default:j++; 
}
return j + x; 
}



这段代码中,得到的结果为什么会是8呢,thanks

[解决办法]
因为case里面你没有加break;所以case 4、5、default都会执行!
[解决办法]

探讨

因为case里面你没有加break;所以case 4、5、default都会执行!

[解决办法]
额 你没个case 后面不加break啊
[解决办法]
探讨
因为case里面你没有加break;所以case 4、5、default都会执行!

[解决办法]
我也搞不明白了
x = 4, 不等于 5 ,不符合case5呀,为啥还执行 case 5 和后面的呀
[解决办法]
+1 你debug一下就知道了
探讨
引用:
因为case里面你没有加break;所以case 4、5、default都会执行!

+1

[解决办法]
探讨

+1 你debug一下就知道了
引用:
引用:
因为case里面你没有加break;所以case 4、5、default都会执行!

+1

[解决办法]
自己多写几个试试就知道了,实在不行在每个case后输出一下,看看对应的值
[解决办法]
break的原因
[解决办法]
执行完case 4的时候j的值是2,
执行完case 5的时候j的值是3,
执行完defaulat的时候j的值是4,
所以返回值是4+4=8
[解决办法]
没有break程序会顺序往下走,j被加了3次为4,4+4=8
[解决办法]
探讨
引用:

因为case里面你没有加break;所以case 4、5、default都会执行!

+1

[解决办法]
正常来说.switch格式应该是每个case结尾都有break作为结束,如果没有就会先匹配case后的数字,只要匹配到就会执行后面的全部代码。
[解决办法]
没有加break 后面不符合的也会按顺序执行下去。。。
[解决办法]
要break;不break后面的代码继续执行 到switch结束j的值是7 在加1就是8
[解决办法]
动手调试,学东西就要多调试代码
[解决办法]
设置个断点,点debug按钮,一步一步调试
[解决办法]
没加break的原因
[解决办法]
探讨

因为case里面你没有加break;所以case 4、5、default都会执行!

[解决办法]
break;跳出来就不加了

多做switch练习

热点排行