我看到一個教程,解釋如何在循環中使用「break」語句 但每次我嘗試使用它時我都會收到編譯錯誤說:break語句在循環中不起作用
「break語句不在循環或開關
break;"
這是我的代碼:
if (finalFirstChar > 6 || finalFirstChar < 1)
{
printf("You didn't entered a proper number! \n");
break;
}
我看到一個教程,解釋如何在循環中使用「break」語句 但每次我嘗試使用它時我都會收到編譯錯誤說:break語句在循環中不起作用
「break語句不在循環或開關
break;"
這是我的代碼:
if (finalFirstChar > 6 || finalFirstChar < 1)
{
printf("You didn't entered a proper number! \n");
break;
}
FWIW,if
是一個條件(選擇語句,是精確的),並break
作品在一個循環(迭代語句)/ switch-case語句。
按C11
,章§6.8.6.3
一個
break
聲明,應僅在或作爲開關體或循環體出現。
在任何情況下,在if
語句正文中不需要break
。
更準確地說,您不需要'if'語句體中的'break',除非'if'語句在循環體內(或開關的情況下,但這不是主題)是itslef – mikedu95
我想讓這個中斷,所以如果「if」確實存在,它會跳到該函數的結尾,並不會執行其他任何事情。 – Nathan1982
@ Nathan1982因爲你不需要休息。只是否定條件中的檢查並將_rest_部分放入條件體中。簡單。 –
OK:
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; */
}
哪裏循環? –
閱讀編譯錯誤 – nedim
如果< - 不是循環:/ – nafas