C语言初学者的,憨憨问题

#include"stdio.h"
int main(){
int a=0,b;
for(b=1;b<=3;b++)
switch(b)
{ default:a=0;
case 3:a++;

}
printf("%d",a);

}我想让它输出的是1,怎么是2啊?
他是咋运行的?

你要搞清楚,你要验证什么,你是想验证,后自增问题吗?

#include"stdio.h"
int main(){
int a=0,b;
for(b=1;b<=3;b++){
    switch(b){ 
        case 3:
            a++;
            break;
        default:
            a=0;
    }
    printf("第%d次循环结果a=%d:\n",b,a);
    }
    printf("%d",a);
}

img

因为前面循环a都是1,但b=3时,default不执行了,case 3使得a++为2