有如下程序:

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:20:34
#include<stdio.h>
main()
{ int x=1,a=0,b=0;
switch(x)
{ case0:b++;
case1:a++;
case2:a++,b++;}
printf("a=%d,b=%d\n",a,b);
}
该程序输出结果是?
我的答案是a=1,b=0
可正确答案是a=2,b=1
不懂额~

case只是个入口,如果在一条case语句中没有break,那么程序后从这个case开始执行到最后一个case语句,具体到本题,由于case 1:a++;后面没有break,所以执行完这一句后,程序并不会退出switch,而是会接着执行case 2:a++,b++;因此会有程序输出的结果,要想得到你的答案,请加上break;语句