这个是代码的问题吗,为什么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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 r语言xlsx包下载后使用时出现了下列问题该如何解决
- ¥15 Arcgis河网分级报错
- ¥200 java+appium2.1+idea
- ¥20 请帮我做一个EXE的去重TXT文本
- ¥15 工价表引用工艺路线,应如何制作py和xml文件
- ¥15 根据历史数据,推荐问题类型
- ¥15 需要仿真图,简单的二阶系统实例
- ¥15 stm32光控照明仿真
- ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
- ¥15 SENT协议中相关问题咨询