#include void main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;
问题描述:
#include void main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;
能不能帮我详细解释一下这个程序的运行过程及结果
#include
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);
}
答
1 运行结果:
a=2,b=1
2 分析:
#include
void main( )
{ int x=1,y=0,a=0,b=0;
switch(x) //x=1,执行后面的case 1分支
{ case 1://执行
switch(y) //y=0,执行后面的case 0分支
{ case 0:a++; break; //执行,a=1,跳到后面的case 2执行.
case 1:b++; break;
}
case 2:a++;b++; break; //执行.a=2,b=1.跳到后面的printf执行.
case 3:a++;b++;
}
printf("\na=%d,b=%d",a,b); //输出一行空行后,再输出a=2,b=1.
}