鱼C论坛

 找回密码
 立即注册
查看: 1007|回复: 12

[已解决]关于break

[复制链接]
发表于 2020-8-21 22:20:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想请教一下大佬们,C语言中break对if-else语句有没有影响呢?
比如:
switch:
        case 1:.......
        case 2:.......
        case 3:
                if (1):
                        ......
                        break;
                else:
                        ......
里面的break是跳出if-else还是跳出switch呢?

我自己举例子试了试,好像是没有影响,想找大佬确认一下。
最佳答案
2020-8-21 22:46:54
break 不能用于 if…else
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-21 22:23:54 | 显示全部楼层
if…else…不形成作用域,所以不会有break,因此break跳出的是switch
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 22:24:20 | 显示全部楼层
本帖最后由 小甲鱼的铁粉 于 2020-8-22 07:49 编辑

break在switch中是直接跳出整个switch的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 22:46:54 | 显示全部楼层    本楼为最佳答案   
break 不能用于 if…else
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 22:47:04 | 显示全部楼层
sunrise085 发表于 2020-8-21 22:23
if…else…不形成作用域,所以不会有break,因此break跳出的是switch

形成作用域啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 22:47:18 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-8-21 22:24
break在switch中是直接跳出整个switch循环的

switch 不是循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 22:47:31 | 显示全部楼层
weiter 发表于 2020-8-21 22:22
if-else
在哪一层就跳出那一层

错解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 07:52:33 | 显示全部楼层
对在循环里的 if - else 有影响,其他情况...  我觉得应该没有吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 10:50:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 11:30:58 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-8-23 00:03 编辑

break语句通常用在循环语句和开关语句中。当break语句用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;而对于其他循环语句而言,如果没有break语句,则有可能将成为一个死循环而无法退出。
#include <stdio.h>
int main(){
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a){
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 23:15:08 | 显示全部楼层
风过无痕1989 发表于 2020-8-22 11:30
break语句通常用在循环语句和开关语句中。当break语句用于开关语句switch中时,可使程序跳出switch而执行sw ...

没有break的话不是会从当前case执行到最后一条吗?哪儿来的死循环啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 23:55:50 | 显示全部楼层
昨非 发表于 2020-8-22 23:15
没有break的话不是会从当前case执行到最后一条吗?哪儿来的死循环啊

break 对 switch 语句而言,没有它,会逐条逐条语句执行到最后,当然不会死循环;而对于其他的循环语句而言,没有它,当然有可能形成死循环哪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 23:59:05 | 显示全部楼层
风过无痕1989 发表于 2020-8-22 23:55
break 对 switch 语句而言,没有它,会逐条逐条语句执行到最后,当然不会死循环;而对于其他的循环语句而 ...

okok好吧 有歧义,没事了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 02:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表