初学者,请问一下a输出为什么不是13而是31呢?

img

img


请问一下循环结束后输出a为什么不是13,而是31呢?初学求解,谢谢大家。

因为case部分都没有break语句,所以如果不是default,都会向下一直执行所有的case和default代码。
比如i=1时,case会满足case 1,然后会执行case 2的代码,a+=3后a=3 ,然后会继续执行default,a+=5后a=8,如此类推。最后结果a=31

因为case后边都没有break呀
1的时候 +3+5= 8
2的时候 3+5 =16
3的时候 +2+3+5 =26
4的时候 26+5=31