表4-5 布爾邏輯運算符及其意義
運算符 含義
& 邏輯與
邏輯或
^ 異或
短路或
&& 短路與
! 邏輯反
&= 邏輯與賦值(賦值的簡寫形式)
= 邏輯或賦值(賦值的簡寫形式)
^= 異或賦值(賦值的簡寫形式)
== 相等
!= 不相等
?: 三元運算符(IF-THEN-ELSE)
布爾邏輯運算符“&”、“ ”、“ ^”,對布爾值的運算和它們對整數位的運算一樣。邏輯運算符“!”的結果表示布爾值的相反狀態:!true == false 和!false == true 。各個邏輯運算符的運算結果如表4-6 所示:
布爾邏輯運算符的運算數只能是布爾型。而且邏輯運算的結果也是布爾類型(見表4-5 )。
表4-5 布爾邏輯運算符及其意義
運算符 含義
& 邏輯與
邏輯或
^ 異或
短路或
&& 短路與
! 邏輯反
&= 邏輯與賦值(賦值的簡寫形式)
= 邏輯或賦值(賦值的簡寫形式)
^= 異或賦值(賦值的簡寫形式)
== 相等
!= 不相等
?: 三元運算符(IF-THEN-ELSE)
布爾邏輯運算符“&”、“ ”、“ ^”,對布爾值的運算和它們對整數位的運算一樣。邏輯運算符“!”的結果表示布爾值的相反狀態:!true == false 和!false == true 。各個邏輯運算符的運算結果如表4-6 所示:
邊的運算數取決于左邊的運算數是真或是假時,短路版本是很有用的。例如,下面的程序語句說明了短路邏輯運算符的優點,用它來防止被0除的錯誤:
if (denom != 0 && num / denom > 10)
既然用了短路AND 運算符,就不會有當denom為0時產生的意外運行時錯誤。假如該行代碼使用標準AND 運算符(&),它將對兩個運算數都求值,當出現被0除的情況時,就會產生運行時錯誤。
既然短路運算符在布爾邏輯運算中有效,那么就在布爾邏輯運算中全用它,而標準的AND 和OR運算符(只有一個字符)僅在位運算中使用。然而,這條規則也有例外。例如,考慮下面的語句:
if(c==1 & e++ < 100) d = 100;
這里,使用標準AND運算符(單個的&)來保證不論c是否等于1,e都被自增量。
新聞熱點
疑難解答