当switch语句中有两个连续的中断时会发生什么?

时间:2015-06-25 17:29:42

标签: c debugging switch-statement

#include <stdio.h>
int main()
{
    int i = 0;
    char c = 'a';
    while (i < 2){
        i++;
        switch (c) {
        case 'a':
            printf("%c ", c);
            break;
            break;
        }
    }
    printf("after loop\n");
}

上述代码的输出是什么? 第二次突破意味着什么吗?

2 个答案:

答案 0 :(得分:5)

break是C中的跳转语句。它无条件地将控制权转移到代码中的其他位置。这意味着break与跳转的目标点之间的任何代码都无法访问,除非有一个允许其到达的标签。

在您的情况下,没有这样的标签。第二个break无法访问,无效。

答案 1 :(得分:4)

第二次休息声明没有用处。 break语句有以下两种用法:

  • 当在循环内遇到break语句时,循环立即终止,程序控制在循环后的下一个语句处重新开始。

  • 它可用于在switch语句中终止一个案例。

在这种情况下,它终止case语句。所以第二次休息时间没有被调用。这是一个无用的陈述。