C语言 下面这个为什么a=2,b=1?不是在y=0的情况下只执行switch(y) { case 0:a++;break;么

2025-04-26 21:39:53
推荐回答(5个)
回答1:

int x=1,y=0,a=0,b=0;
switch(x)
{
    case1:
        switch(y)  
        { 
             case 0: a++;break;
             case 1:b++;break; //跳出当前switch 只跳出一层 不会连续跳出两层
         }
         break;  //加这个break 才会跳出外面这个switch 
         case 2:a++;b++;break;
         case 3:a++;b++;
 }
printf("%d%d",a,b);

回答2:

因为第一个case 1后面没有break,继续执行case2的内容。

回答3:

0的话就不执行了,直接跳过,要1才会继续执行

回答4:

break; 只能退出一个switch语句吧!

回答5:

你的第一个switch完整么?