布爾操作符(Boolean operator)是求值結(jié)果要么為true,要么為false的一種操作符。C#提供了幾個(gè)非常有用的布爾操作符,其中最簡(jiǎn)單的是NOT(求反)操作符,它使用感嘆號(hào)(!)來(lái)表示。!操作符求一個(gè)布爾值的反值。在上例中,假如變量areYouReady的值為true,那么表達(dá)式!areYouReady的求值結(jié)果就是false。
理解相等和關(guān)系操作符
兩個(gè)更常用的布爾操作符是相等(==)和不等(!=)操作符。利用這兩個(gè)二元操作符,可以判斷一個(gè)值是否與相同類型的另一個(gè)值相等。表1展示了這些操作符是如何工作的,其中以一個(gè)名為age的int變量為例。
表1 布爾操作符
操 作 符 含 義 示 例 結(jié)果(假定age = 42)
== 等于 age == 100 false
!= 不等于 age != 0 true
與上述兩個(gè)操作符密切相關(guān)的是關(guān)系操作符(relational operator)。利用這些操作符,可以判斷一個(gè)值是否小于或大于同類型的另一個(gè)值。表2展示了如何使用這些操作符。
表2 關(guān)系操作符
操 作 符 含 義 示 例 結(jié)果(假定age = 42)
&< 小于 age &< 21 false
&<= 小于或等于 age &<= 18 false
> 大于 age > 16 true
>= 大于或等于 age >= 30 true
注意 不要混淆相等操作符(==)與賦值操作符(=)。像x==y這樣的代碼會(huì)比較x與y,如果兩個(gè)值相同,就會(huì)返回true。相反,像x=y這樣的代碼會(huì)將y的值賦給x。
理解條件邏輯操作符
C#還提供了另外兩個(gè)布爾操作符:邏輯AND(邏輯與)操作符,它使用&&來(lái)表示;以及邏輯OR(邏輯或)操作符,它使用||來(lái)表示。這兩個(gè)操作符統(tǒng)稱為條件邏輯操作符(conditional logical operator)。它們的作用是合并不同的布爾表達(dá)式,以構(gòu)成一個(gè)更大的表達(dá)式。這兩個(gè)二元操作符與相等及關(guān)系操作符的相似之處在于,它們的結(jié)果也是true或false。不同之處在于,它們操作的值(操作數(shù))本身就必須是true或false。
只有作為操作數(shù)的兩個(gè)布爾表達(dá)式都為true的前提下,&&操作符的求值結(jié)果才為true。例如,只有在percent的值大于或等于零,而且percent的值小于或等于100的前提下,以下語(yǔ)句才會(huì)將true值賦給validPercentage:
bool validPercentage;
validPercentage = (percent >= 0) && (percent &<= 100);
提示 新手常犯的一個(gè)錯(cuò)誤是在合并兩個(gè)測(cè)試的時(shí)候,只對(duì)percent變量命名一次,就像下面這樣:
percent >= 0 && &<= 100 // 這個(gè)語(yǔ)句不能編譯
使用圓括號(hào)有助于避免這種類型的錯(cuò)誤,同時(shí)也有助于澄清表達(dá)式。例如,可以對(duì)比一下以下兩個(gè)表達(dá)式:
validPercentage = percent >= 0 && percent &<= 100
validPercentage = (percent >= 0) && (percent &<= 100)
兩個(gè)表達(dá)式返回的是同一個(gè)值,因?yàn)椴僮鞣?&的優(yōu)先級(jí)低于>=和&<=。然而,第二個(gè)表達(dá)式采取更清晰易懂的方式表明了它的目的。
理解相等和關(guān)系操作符
兩個(gè)更常用的布爾操作符是相等(==)和不等(!=)操作符。利用這兩個(gè)二元操作符,可以判斷一個(gè)值是否與相同類型的另一個(gè)值相等。表1展示了這些操作符是如何工作的,其中以一個(gè)名為age的int變量為例。
表1 布爾操作符
操 作 符 含 義 示 例 結(jié)果(假定age = 42)
== 等于 age == 100 false
!= 不等于 age != 0 true
與上述兩個(gè)操作符密切相關(guān)的是關(guān)系操作符(relational operator)。利用這些操作符,可以判斷一個(gè)值是否小于或大于同類型的另一個(gè)值。表2展示了如何使用這些操作符。
表2 關(guān)系操作符
操 作 符 含 義 示 例 結(jié)果(假定age = 42)
&< 小于 age &< 21 false
&<= 小于或等于 age &<= 18 false
> 大于 age > 16 true
>= 大于或等于 age >= 30 true
注意 不要混淆相等操作符(==)與賦值操作符(=)。像x==y這樣的代碼會(huì)比較x與y,如果兩個(gè)值相同,就會(huì)返回true。相反,像x=y這樣的代碼會(huì)將y的值賦給x。
理解條件邏輯操作符
C#還提供了另外兩個(gè)布爾操作符:邏輯AND(邏輯與)操作符,它使用&&來(lái)表示;以及邏輯OR(邏輯或)操作符,它使用||來(lái)表示。這兩個(gè)操作符統(tǒng)稱為條件邏輯操作符(conditional logical operator)。它們的作用是合并不同的布爾表達(dá)式,以構(gòu)成一個(gè)更大的表達(dá)式。這兩個(gè)二元操作符與相等及關(guān)系操作符的相似之處在于,它們的結(jié)果也是true或false。不同之處在于,它們操作的值(操作數(shù))本身就必須是true或false。
只有作為操作數(shù)的兩個(gè)布爾表達(dá)式都為true的前提下,&&操作符的求值結(jié)果才為true。例如,只有在percent的值大于或等于零,而且percent的值小于或等于100的前提下,以下語(yǔ)句才會(huì)將true值賦給validPercentage:
bool validPercentage;
validPercentage = (percent >= 0) && (percent &<= 100);
提示 新手常犯的一個(gè)錯(cuò)誤是在合并兩個(gè)測(cè)試的時(shí)候,只對(duì)percent變量命名一次,就像下面這樣:
percent >= 0 && &<= 100 // 這個(gè)語(yǔ)句不能編譯
使用圓括號(hào)有助于避免這種類型的錯(cuò)誤,同時(shí)也有助于澄清表達(dá)式。例如,可以對(duì)比一下以下兩個(gè)表達(dá)式:
validPercentage = percent >= 0 && percent &<= 100
validPercentage = (percent >= 0) && (percent &<= 100)
兩個(gè)表達(dá)式返回的是同一個(gè)值,因?yàn)椴僮鞣?&的優(yōu)先級(jí)低于>=和&<=。然而,第二個(gè)表達(dá)式采取更清晰易懂的方式表明了它的目的。

