天天看點

if 語句

if 語句根據特定表達式是否為真來有條件地執行另一個語句。if 語句有兩種形式:其中一種帶 else 分支而另一種則沒有。根據文法結構,最簡單的 if 語句是這樣的:

其中的 condition 部分必須用圓括号括起來。

通常,statement 部分可以是複合語句,即用花括号括起來的塊語句。

如果在條件表達式中定義了變量,那麼變量必須初始化。将已初始化的變量值轉換為 bool 值後,該 bool 值決定條件是否成立。變量類型可以是任何可轉換為 bool 型的類型,這意味着它可以是算術類型或指針類型。

語句塊用作 if 語句的對象

當多個語句必須作為單個語句執行時,比較常見的錯誤是漏掉了花括号。

在下面的程式中,與程式員縮進目的相反,對 occurs 的指派并不是 if 語句的一部分:

這樣寫的話,對 occurs 的指派将會無條件地執行。這種錯誤很難發現,因為程式代碼看起來是正确的。

if 語句的 else 分支

if else 語句的文法形式為:

如果 condition 為真,則執行 statement1;否則,執行 statement2。

所有語言的 if 語句都普通存在着潛在的二義性。這種情況往往稱為懸垂 else 問題,産生于一個語句包含的 if 子句多于 else 子句時:對于每一個 else,究竟它們歸屬哪個 if 語句?

C++中懸垂 else 問題帶來的二義性,通過将 else 比對給最後出現的尚未比對的if 子句來解決。

有些程式設計風格建議總是在 if 後面使用花括号。這樣做可以避免日後修改代碼時産生混亂和錯誤。