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