关于switch多分支语句

来源:百度知道 编辑:UC知道 时间:2024/09/24 20:31:36
main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
为什么结果是a=2,b=1而不是a=1,b=0呢,就算case 1这行运行结束后没有break运行下一行但是x=1还是不能运行的啊

没错呀,虽然都是先用后加,但是都加完了,才输出的。最后a加了两遍,b加了一遍,有啥问题?

不是的,如果没有break 无论前面case加的什么条件 都是直接进入下一语句。