break语句在循环中不起作用

时间:2016-01-15 13:21:37

标签: c loops if-statement break

我看到了一个解释如何在循环中使用“break”语句的教程 但每次我尝试使用它时,我都会收到编译错误:

  

“break语句不在循环或开关中    break;"

这是我的代码:

if (finalFirstChar > 6 || finalFirstChar < 1)
{
    printf("You didn't entered a proper number! \n");
    break;
}

2 个答案:

答案 0 :(得分:6)

FWIW,if是一个条件(确切地说是选择语句),并且break在循环中工作(迭代语句) / switch-case statement。

根据C11,章节§6.8.6.3

  

break语句只能出现在开关体或循环体中。

在任何情况下,break声明正文中都不需要if

答案 1 :(得分:0)

行:

while (cond1) {
    if (cond2) break;                /* or continue; */
    if (cond3) return [something];
}

for (init; cond4; after) {
    if (cond5) break;                /* or continue; */
    if (cond6) return [something];
}

do {
    if (cond7) break;                /* or continue; */
    if (cond8) return [something];
} while (cond9);

if (cond10) return [something];

不行:

if (cond11) {    /* not in any while/do/for loop, or case switch */
    break;                /* or continue; */
}