布爾操作符(Boolean operator)是求值結果要麼為true,要麼為false的一種操作符。C#提供了幾個非常有用的布爾操作符,其中最簡單的是NOT(求反)操作符,它使用驚嘆號(!)來表示。!操作符求一個布爾值的反值。在上例中,假如變數areYouReady的值為true,那麼運算式!areYouReady的求值結果就是false。
理解相等和關係操作符
兩個更常用的布爾操作符是相等(==)和不等(!=)操作符。利用這兩個二元操作符,可以判斷一個值是否與相同類型的另一個值相等。表1展示了這些操作符是如何工作的,其中以一個名為age的int變數為例。
表1 布爾操作符
| 操 作 符 |
含 義 |
示 例 |
結果(假定age = 42) |
| == |
等於 |
age == 100 |
false |
| != |
不等於 |
age != 0 |
true |
與上述兩個操作符密切相關的是關係操作符(relational operator)。利用這些操作符,可以判斷一個值是否小於或大於同類型的另一個值。表2展示了如何使用這些操作符。
表2 關係操作符
| 操 作 符 |
含 義 |
示 例 |
結果(假定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(邏輯或)操作符,它使用||來表示。這兩個操作符統稱為條件邏輯操作符(conditional logical operator)。它們的作用是合并不同的布林運算式,以構成一個更大的運算式。這兩個二元操作符與相等及關係操作符的相似之處在於,它們的結果也是true或false。不同之處在於,它們操作的值(運算元)本身就必須是true或false。
只有作為運算元的兩個布林運算式都為true的前提下,&&操作符的求值結果才為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)