洲900 2022-10-17 13:19 采纳率: 95.8%
浏览 19
已结题

是代码出问题了吗?标题凑字数

img


这个是代码的问题吗,为什么case1和case0能同时输出,不应该只能输出一个吗

  • 写回答

1条回答 默认 最新

  • a5156520 2022-10-17 13:22
    关注

    因为最上面的switch的case 1 和case 0后面没有break,所以他们都可以执行;但是case 1 和case 0 里面的switch的case有break,所以在执行了匹配的case后会退出。

    具体过程是:
    首先,执行第一个switch 根据a的值1,执行case 1,然后这个case 1里面的swich 匹配b的值,b=2 ,匹配到这个swicth的 case 2 ,所以打印 “!”;

    然后,因为第一个case 1后面没有break ,继续执行下面的case 0 ,这个case 0 里的switch匹配c的值,c=2, 匹配到这个switch的case 2,打印“$”,;

    接着,上面这个case 0也没有break,继续执行 default, 打印“&”.

    最后,第一个switch退出,打印最后的换行符。

    #include <stdio.h>
    
    int main(void){
        
        int a=1,b=2,c=2;
        
        switch(a){
            
            case 1:switch(b){
                case 1:printf("@");break;
                case 2:printf("!");break;
            }
            
            case 0:switch(c){
                case 0:printf("*");break;
                case 1:printf("#");break;
                case 2:printf("$");break; 
            }
            
            default:printf("&");
            
        }
        
        printf("\n");
        
        return 0;
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 r语言xlsx包下载后使用时出现了下列问题该如何解决
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询