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+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告