{int a=0,i; for(i=1;i<5;i++) {swich(i) {case0: case3:a+=2; case1: case2:a+=3; default:a+=5; } }

printf(&quot;%尀n&quot;,a);}为什么结果是31
2024-11-29 01:37:18
推荐回答(2个)
回答1:

额,你这里没有break,所以一直会执行,直到结束……
这个循环一共执行4次,那么必定default会执行4次,a=20,
然后i对应的值分别为1时,执行case1和case 2 ,所以a=20+3
i=2, 执行case 2,所以 a=23+3
i=3, 执行case 3和case 0和case 2 , 所以 a=26+2+3
i=4, 不执行有关case 语句
注意,不管i为什么值,都要执行default ,我已把它的计算放在上面了,所以最后a=31
你得理解swich 语句功能,如果没有break呢?怎样?

回答2:

上面的那位说的很正确!不再重复·····