这个不是22么⊙ω⊙求解

 

应该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;
} 

img