Java邏輯運算符
Java邏輯運算符包含下面6中符號:
&& 與 ;&& 與 ?前后兩個操作數必須都是true才返回true,否則返回false
& 不短路與 ;?& 不短路與 表達式都會執行到
|| 或;?|| 或 只要兩個操作數中有一個是true,就返回true,否則返回false
|不短路或 ;| 不短路 或?表達式都會執行到
!非;! 非 ,如果操作數為true,返回false,否則,返回true
^異或;^ 異或 ,當兩個操作數不相同時返回true,返回false
真值表
A???? ?????????????? B???????????? ?????????????? A&&B????? A||B???????? !A ????????? A^B????????? A&B???????? A|B
false ????????????? false?????????????????????? false ?????? false ?????? true???????? false??????? false ???????? false
true ?????????????? false??????? ?????????????? false ????? true ???????? false??????? true ?? ??????false????????? true
false?????????????? true???????? ?????????????? false??????? true???????? true???????? true???????? false??????????true
true ? ? ? ? ? ? ? ? ? ? true ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?true ? ? ? ? ?? true ? ? ? ?? ? false ? ? ?? ? ?false ? ? ? ? ? ?true ? ? ? ? ? ?? true
總結
兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。其區別是:&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。對于&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。所以,系統一旦判斷出&&運算符左端的值為false,則系統將終止其后的計算過程;對于 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其后的計算過程。
例如,有如下邏輯表達式:
(i>=1) && (i<=100)
此時,若i等于0,則系統判斷出i>=1的計算結果為false后,系統馬上得出該邏輯表達式的最終計算結果為false,因此,系統不繼續判斷i<=100的值。短路計算功能可以提高程序的運行速度。
建議:在程序設計時使用&&和||運算符,不使用&和|運算符。
用邏輯與(&&)、邏輯或(||)和邏輯非(!)可以組合出各種可能的邏輯表達式。邏輯表達式主要用在 if、while等語句的條件組合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++;??? //循環過程
上述程序段的循環過程將i++語句循環執行100次。
例子
if((23>24)&&(100/0==0)){//23>24 為false,后面條件就不執行判斷,當23<24為true,后面條件繼續執行判斷,拋出異常java.lang.ArithmeticException: / by zero
}
if((23>24)&(100/0==0)){//條件必須都執行判斷,拋出異常java.lang.ArithmeticException: / by zero
}
if((23<24)||(100/0==0)){// ||短路或,當第一個條件為true,后面條件不執行判斷;
}
if((23>24)|(100/0==0)){// | 非短路或,所有條件都要執行判斷
}
例子二
版權聲明:本文為JAVASCHOOL原創文章,未經本站允許不得轉載。