c语言这道题目不会做,哪位好心人帮帮我。

#include<stdio.h>
void main()
{
int x=1, y=0;
switch(x)
{
case 1:
switch(y)
{
case 0: printf("Title1 \n");break;
case1:printf("Title 2 \n");break;
}
case 2:printf("Title3 \n");
}
}

为什么答案是title1 和 title3 ?如果是我来做答案就是title1 ,而没有title3,我的理解x=1,就是case1这种情况,在case1中的switch(y)中y的值为0,所以就是 case 0: printf("Title1 \n");break; 里面有个break,就不会做下去了,所以答案就是title1. 我不知道我哪里理解错了,哪位大神帮帮我谢了。
最新回答
为你唱起小乌龟

2024-12-01 11:07:28

switch(y)里面语句的break;是跳出该switch的分支的;因为switch(x)的case1没有break;所以接着执行case 2;
凉风有信

2024-12-01 03:56:05

#include<stdio.h>
void main()
{
      int x=1, y=0;
switch(x)
   {
     case 1:
           switch(y)
            {
                 case 0: printf("Title1  \n");break;
                  case1:printf("Title 2 \n");break;
              }
              break;//这里加一个break就好了
      case 2:printf("Title3 \n");
         }
}
肆无忌惮的思念

2024-12-01 00:54:15

break是跳出switch执行以后的语句
跳出case0之后自然就会执行case2