应该x的值为1,所以第一个case 0匹配不到,不会执行,执行的是case 1,然后case 1执行完,没有break语句,所以会继续执行case 2,所以租后a的值是2,b的值是1,测试代码如下:
参考链接:
https://baike.baidu.com/item/switch/18601752?fr=aladdin
#include <stdio.h>
int main(void){
int x=1,a=0,b=0;
switch(x){ // 匹配x的值
case 0:b++; // 因为x=1,所以不会匹配到这个case 0
case 1:a++; // 和x的值一致,所以会执行,a++后a=1
case 2:a++;b++; // 因为执行前一个case后,没有break,所以会继续执行这个case ,a++和b++后,a=2,b=1
}
printf("%d,%d",a,b); // 所以打印a和b的值是:2,1
return 0;
}