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迴圈可能會進入無限迴圈。注意:'{}'是一個語句塊(一種包含其他語句列表的語句)。
廣告