JAVA中switch语句中的问题

2025-03-20 10:42:52
推荐回答(2个)
回答1:

我先说明一下我没学过Java,但我试了下代码。第一个运行结果是5是因为case的值没有与变量一样,所以从default后面的语句开始算,到break的时候终止y的值自增两次所以是5,第二个因为case的值和变量一样default的语句就无视了直接进行case 3后面的语句,后面就是break,所以自增一次y=4.。。。如果把第一个图default放到最下面结果是4,如果把第二个图break去掉结果是5

回答2:

因为你x=2或者6的时候,会走default,这个时候y++递增一次了,但是你没有break跳出去

会形成case穿透,继续向下走,就又递增一次,然后递增完这一次break跳出去了,懂了?
其实你测试把第二个break也给去掉,你会发现结果一定是6,因为case 4也会被执行;
简单有效的测试就是,y++后面跟一个输出语句,能看到哪步执行了..
default写在上面是大忌,写最下面吧...非要写上面也可以,记得要加break;