【C语言】switch…case无break情况(2)

菜鸡自学
注意case后是否有break。当满足条件的case后无break时,运行此case后的所有语句,既后面的case,default都失效了,保留其他代码。

int i;
  for(i=0;i<3;i++)
    switch(i)
    {
     case 0: printf("i=%d case 0\n",i);
     case 1: printf("i=%d case 1\n\n",i);
     default : printf("i=%d default\n\n\n",i);
    }

结果如下:

i=0 case 0
i=0 case 1

i=0 default


i=1 case 1

i=1 default


i=2 default


这里用了换行符进行分别,不同的case结果。
前面6行是第一次for循环的结果;7—11行是第二次for循环结果;最后3行是最后一行的结果。

通俗一点说,就是:
1.找到满足条件的case,并且后紧跟有break:
其他的都不管,只运行这一行(直接注释掉这个case前面的所有语句)。

2.找到满足的case后,后面均无break:
直接“注释”掉这个case后面的其他"case","default"关键字,运行满足条件的case后的一句,和后面的所有代码。

3.后面远处有一句break;找到我想要的case后,只管执行后面代码,直到遇到break后跳出switch语句块。

C语言中,switch-case语句可以用于根据不同的条件执行不同的代码块。当case中有break语句时,执行完该case的代码之后会跳出整个switch语句。如果在case中没有break语句,会继续执行下一个case中的代码,而不再进行匹配。 下面是一个示例代码: ```c switch(i){ case 1: printf("这就是用来测试的语句1\n"); break; case 2: printf("这就是用来测试的语句2\n"); case 3: printf("这就是用来测试的语句3\n"); } ``` 在这个示例中,当i的值为1时,会执行第一个case中的代码并跳出switch语句。当i的值为2时,会执行第二个case中的代码,并继续执行第三个case中的代码。 另外,switch-case语句还可以与if语句结合使用。下面是一个功能正常的代码示例: ```c int score; if(score>=0 && score<=100){ switch(score / 10){ case 10: case 9: printf("A\n"); break; case 8: printf("B\n"); break; case 7: printf("C\n"); break; case 6: printf("D\n"); break; default: printf("E\n"); } } else{ printf("error\n"); } ``` 在这个示例中,根据score的值进行不同的判断并输出不同的等级。如果score在0到100之间,会根据score的值除以10来匹配相应的case,并执行相应的代码。如果score不在0到100之间,会输出"error"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C语言breakswitch-case中的作用](https://blog.csdn.net/myGFZ/article/details/53054861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [C语言switch-case语句中的break](https://blog.csdn.net/m0_54045571/article/details/116242389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值