C#使用if語句概述
C#語言有很多值得學習的地方,這里我們主要介紹C#使用if語句。如果想根據一個布爾表達式的結果選擇執行兩個不同的代碼塊,就可以C#使用if語句。
理解if語句的語法
if語句的語法格式如下(if和else是關鍵字):
- if ( booleanExpression )
- statement-1;
- else
- statement-2;
如果booleanExpression求值為true,就運行 statement-1;否則就運行statement-2。else關鍵字和后續的statement-2是可有可無的。如果沒有else子句,那么在booleanExpression為false的前提下,什么都不會發生。
例如,以下if語句用于遞增一個秒表的秒針(暫時忽略分鐘)。如果seconds的值是59,就重置為0;否則就使用操作符++來遞增:
- int seconds;
- ...
- if (seconds == 59)
- seconds = 0;
- else
- seconds++;
只使用布爾表達式!
C#使用if語句中的表達式必須放在一對圓括號中。除此之外,表達式必須是布爾表達式。在另一些語言中(尤其是C和C++),還可以使用一個整數表達式,編譯器能自動將整數值轉換成true(非零值)或false(零值)。C#不允許這樣做。如果寫這樣的一個表達式,編譯器會報錯。
假如在if語句中不慎寫了一個賦值表達式,而不是執行一個相等性測試,C#編譯器也能識別你的錯誤。例如:
- int seconds;
- ...
- if (seconds = 59) // 編譯時錯誤
- ...
- if (seconds == 59) // 正確
不慎而寫成賦值表達式,是C和C++程序容易出現bug的另一個原因。在C和C++中,會將所賦的值(59)悄悄地轉換成一個布爾值(任何非零的值都會被視為true),造成每次都必定執行C#使用if語句之后的代碼。
***,可以將一個布爾變量作為表達式使用,如下例所示:
- bool inWord;
- ...
- if (inWord == true) // 可以,但不常用
- ...
- if (inWord) // 更好
【編輯推薦】