#include void main(){int x=0,y=2,z=3;switch(x){case 0 :switch(y==2){case 1 :printf("*");break;case 2:printf("%");break;}case 1 :switch(z){case 1 :printf("$");case 2:printf("*");break;default :printf("#");}}}请问是怎么输出的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 03:13:09
#include void main(){int x=0,y=2,z=3;switch(x){case 0 :switch(y==2){case 1 :printf(
xSn@+i%@VC`}%@T)E@$Ȓ#7A(Q"AE !K] =lq羬{ΌsU1Ngwo4&)f-r;B"+W`),d0uOv!>碹<4nVB+F>|ȴtZ&=.<{fr{W$Io.бw2:AuE|#晥;c/u;=RUFAKUYSlLcT ~FC}i}jn 5C~pc izGurNzZp͸yg .PJ^{jtȂ(C@j#\6S:)9B[8A]gϬGrծrlbr7WX

#include void main(){int x=0,y=2,z=3;switch(x){case 0 :switch(y==2){case 1 :printf("*");break;case 2:printf("%");break;}case 1 :switch(z){case 1 :printf("$");case 2:printf("*");break;default :printf("#");}}}请问是怎么输出的?
#include
void main()
{
int x=0,y=2,z=3;
switch(x)
{case 0 :switch(y==2)
{case 1 :printf("*");break;
case 2:printf("%");break;
}
case 1 :switch(z)
{case 1 :printf("$");
case 2:printf("*");break;
default :printf("#");
}
}
}
请问是怎么输出的?

#include void main(){int x=0,y=2,z=3;switch(x){case 0 :switch(y==2){case 1 :printf("*");break;case 2:printf("%");break;}case 1 :switch(z){case 1 :printf("$");case 2:printf("*");break;default :printf("#");}}}请问是怎么输出的?
它里面有一个递归调用:
当X=0时,执行case 0:进入
switch(y==2)
{case 1 :printf("*");break;
case 2 :printf("%");break;
}
因为里面只是一个比较过程,而没有所要执行的值,switch()中没有找到匹配的就按顺序执行下去,遇到case 1 :printf("*");break;输出一个“*”;跳出;
接下来执行,case 1:switch(z),(说明:z=3)
找到case 3,而现在没有只能找最后一个default:printf("#");
所以最后只执行default:printf("#");
最后输出 * #;
完毕.理解否?