CaptainBiken 发表于 2020-8-21 22:20:45

关于break

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

我自己举例子试了试,好像是没有影响,想找大佬确认一下。

sunrise085 发表于 2020-8-21 22:23:54

if…else…不形成作用域,所以不会有break,因此break跳出的是switch

小甲鱼的铁粉 发表于 2020-8-21 22:24:20

本帖最后由 小甲鱼的铁粉 于 2020-8-22 07:49 编辑

break在switch中是直接跳出整个switch的{:10_250:}

永恒的蓝色梦想 发表于 2020-8-21 22:46:54

break 不能用于 if…else

永恒的蓝色梦想 发表于 2020-8-21 22:47:04

sunrise085 发表于 2020-8-21 22:23
if…else…不形成作用域,所以不会有break,因此break跳出的是switch

形成作用域啊{:10_277:}

永恒的蓝色梦想 发表于 2020-8-21 22:47:18

小甲鱼的铁粉 发表于 2020-8-21 22:24
break在switch中是直接跳出整个switch循环的

switch 不是循环

永恒的蓝色梦想 发表于 2020-8-21 22:47:31

weiter 发表于 2020-8-21 22:22
if-else
在哪一层就跳出那一层

错解

livcui 发表于 2020-8-22 07:52:33

对在循环里的 if - else 有影响,其他情况...我觉得应该没有吧

weiter 发表于 2020-8-22 10:50:02

永恒的蓝色梦想 发表于 2020-8-21 22:47
错解

好吧……受教了

风过无痕1989 发表于 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;
}

昨非 发表于 2020-8-22 23:15:08

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

没有break的话不是会从当前case执行到最后一条吗?哪儿来的死循环啊{:10_245:}

风过无痕1989 发表于 2020-8-22 23:55:50

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

break 对 switch 语句而言,没有它,会逐条逐条语句执行到最后,当然不会死循环;而对于其他的循环语句而言,没有它,当然有可能形成死循环哪

昨非 发表于 2020-8-22 23:59:05

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

okok好吧 有歧义,没事了{:10_277:}
页: [1]
查看完整版本: 关于break