C高手们帮忙呀

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:59:26
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;}
case 2:a++;b++;break;}
printf("%d %d\n",a,b);
}
答案是:2 1,请解释一下.谢了!

执行步骤:
x=1,执行case 1里的 switch(y)
y=0,执行case 0:a++;则a=1;
跳出switch(y)的break,但是没有跳出switch(x)里的case 1;
故还要执行switch(x)里的case 2;
所以a=2,b=1

这里是两个Switch Case结构
1 x=1 进入Switch1的Case1
2 进入后y=0,进入Switch2的Case0
a++ (a=1)
break
跳出Switch2
退回Switch1
3 接着执行Switch1的Case2
a++ a=2
b++ b=1
4 最后 printf把a b打印出来