发布网友 发布时间:2022-04-22 06:07
共2个回答
热心网友 时间:2023-07-31 08:38
X=0;y=2;Z=3
在你的代码片段中switch(x)的每个case后面都跟了一条switch语句,下面我给你整理了一下它们的隶属关系,然后进行了分析:
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("*");
defalut
:printf("#")
;
}
}
首先
switch(x)由于x的值为0,所以进入case
0:而后面的语句又是一switch语句即switch(y==2)由于y的值为2,所以y==2的值为1,因此进入
switch(y==2)
{
case
1:printf("*");break;
case
2:printf("%");break;
}
中的case
1:
输出*,然后break结束这个switch(y==2),然后进入外层switch的case
1:进入switch(z)由于z的值为3,所以执行printf("#")
;
输出#,结束。
因此最终输出结果为:*#
热心网友 时间:2023-07-31 08:38
很简单的问题,因为你的case
0:switch(y==2)执行完之后没有break,所以继续往下执行case
1:switch(z),你的break只是跳出switch(y==2)下面的复合语句,此外你的default打错了吧