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