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