邏輯運算符
運算符 | 運算 | 範例 | 結果 |
& | 與 | true | true | true |
| | 或 | true |false | true |
! | 非 | !false | true |
^ | 異或 | true ^ true | false |
&& | 短路與 | true && true | true |
|| | 短路或 | true || false | false |
注意:
1.邏輯運算符兩邊的值是boolean 值(結果爲boolean值的表達式)
2. & 運算中,只要有一個false,結果爲false
3. | 與運算,只要操作數中有一個爲true,結果爲true
4. !運算,!true = false, !false = true
5. ^ 運算,兩個操作數相同結果爲false ,例如,true ^ true = false=; false ^ false = false ; true ^ false = true;
6. 短路運算:
在使用&& || 短路運算符的時候,只要前面的操作數能獲取到結果,就不會計算後表達;
例如
:
int a = 10; int b = 20;
boolean bl = (++a < 2) && ( ++b > 20) 請問這a 和 b 的結果?
結果:
a = 11;
b = 20;
爲什麼?
在執行 ++a < 2 = false ,就可以得到表達式的結果了!而後面的 ++b > 20 根本就沒有執行。
所謂的短路的是意識就是:在執行過程中,所執行的結果已經可以得到表達式的結果,那麼就不需要再執行後面的表達式了。