C++ 中在 while 和 if 語句後使用分號


當你有一個這樣的語句:

while (expression);

無論表示式是否為真,while 迴圈都會執行。但是,如果你這樣寫:

if (expression);

無論表示式是否為真,語句都會執行。這是因為 if 和 while 的語法是:

if (<expr>) <statement>
// or
while (<expr>) <statement>

所以只有當 <expr> 計算結果為真時,才會執行 <statement>。在 while 中,它將進入無限迴圈。

所以問題是什麼 <statement> 它執行。如果沒有花括號 {},則下一個語句以 ; 結束,即使該語句為空。請注意,空語句是有效的。

if (<expr>)    /* Empty Statement */;
while (<expr>) /* Empty Statement */;

在這兩種情況下,都沒有執行任何操作(在表示式計算後)。雖然 while 可能會進入無限迴圈。注意:'{}' 是一個語句塊(一種包含其他語句列表的語句)。

更新於: 2020年2月11日

2K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.