一团草鱼!
2021-10-19 21:27
采纳率: 100%
浏览 17

这段代码的输出值是多少?用VS2010编译总是报错,不知为啥……

img

#include <stdio.h>

int main( )
{
     int x=1, y=1, z=1;
     switch(x)
     {
        case 1:
            switch(y)
            {  
                case 1: printf("!!"); break;
                case 2: printf("@@"); break;
                case 3: printf("##"); break;
            }
      case 0:
            switch(z)
            {      
                case 0: printf("$$");
                case 1: printf("^^");
                case 2: printf("&&");
            }
       default: printf("**");
} 
    return 0;
}


  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 已采纳

    会输出

    !!^^&&**
    

    switch()中如果没有用break跳出会连续执行之后所有 case 内的代码

    执行过程看注释

    #include <stdio.h>
    int main( )
    {
         int x=1, y=1, z=1;
         switch(x)
         {
            case 1: //x是1 从这里开始执行
                switch(y)
                {
                    case 1: printf("!!"); break; //y是1 执行printf("!!");
                                                 //并用break 跳出switch(y)语句块,到A处继续执行
                    case 2: printf("@@"); break;
                    case 3: printf("##"); break;
                }
    
            // A处  没有用break跳出会连续执行之后 case 内的代码
            case 0:
                switch(z)
                {
                    case 0: printf("$$");
                    case 1: printf("^^"); //z是1 从这里开始执行
                    case 2: printf("&&"); //没有用break跳出会连续执行之后 case 内的代码
                }
            default: printf("**"); //没有用break跳出会连续执行之后 case 内的代码
        }
        return 0;
    }
    
    

    如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • img

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题