c语言程序解释。谢谢啦

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:11:14
谁能帮我详细的解释一下,为什么下面程序的执行结果是:a=2,b=1?

例 void 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;
case 3: a++;b++;
}
printf(“\na=%d,b=%d”,a,b);
}

x对应的case1没写break;所以执行完y的case 0后,又执行了x的case 2.\

总共a++执行了2次,b++执行了1次

case 1和case 3后面都少了个 break;
case 1执行后a=1,b=0,但是会接着往下执行case 2,所以a=2,b=1.
这个程序还有待完善一下,就是加上default 。

因为case 1 之后没有break 所以 case 1 和 case 2 都会执行

在switch(x)里的case 1后面没有break,所以执行完case 1之后又执行了case 2。
粗心导致的吧-_-!

void main()
{
int x=1,y=0,a=0,b=0;
switch(x){
case 1:
switch(y){
case 0:
a++;
break;
case 1:
b++;
break;
default:/*switch语句为什么没有default呢?*/
break;
}
break;/*这里为什么没有break?*/
case 2:
a++;
b++;
break;
case 3:
a++;
b++;
break;/*这里为什么也没有break?*/
default:/*switch语句为什么没有default呢?*/
break;
}
printf(“\na=%d,b=%d”,a,b);
}

void main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1: switch(y)
{
cas