1. 程式人生 > 實用技巧 >13.邏輯運算子

13.邏輯運算子

邏輯運算子

什麼是邏輯運算子?連線比較運算子的符號稱之為邏輯運算子。那麼為什麼要連線比較運算子? 舉例:當你去公司應聘,招聘要求,男性(判斷為真),並且開發經驗1年(判斷為假)那麼,我們還適合去面試嗎,不能,因為只滿足了一項,總體是不滿足的(總體結果為假)。

邏輯運算子用於對boolean型結果的表示式進行運算,運算的結果都是boolean型。我們的比較運算子只能進行一次判斷,對於對此判斷無能為力,那麼邏輯運算子就可以經將較運算子連線起來。

邏輯運算子用於連線布林型表示式,在Java中不可以寫成3<x<6,應該寫成x>3 & x<6 。

“&”和“&&”的區別:單與時,左邊無論真假,右邊都進行運算;雙與時,如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。

“|”和“||”的區別同理,雙或時,左邊為真右邊不參與運算。

“ ^ ”異或與“|”或的不同之處是:當左右都為true時,結果為false。

& 與 | 或 ^ 異或 ! 非

1&

  true & true = true ;
  false & true= false;
  true & false = false;
  false & false= false;

總結 & 符號特點

& : 只要兩邊的boolean 表示式結果,有一個false.那麼結果就是false

只有兩邊都為true ,將結果為true.

2|

true   |  true   =true;
 ture   |  false =true;
 false  |  true  =true;
 false  |  false =flase;

總結 | : 兩邊只要有一個為真結果就為真,當兩邊同為假時結果才為假.

3^ 異或

  true  ^  true =false;
  ture  ^  false =true;
  false  ^  true= true;
  false  ^  false=flase;

: 兩邊相同結果是false

兩邊不同結果是true;

4

!

true = falsefalse= true

5&& 短路

研究發現,&運算只有兩邊全為真的時候,結果才為真,那麼當左邊為假的時候就沒有必要在進行判斷,&&就產生了。

int a =4;

a >3 && a< 6;

a >3 & a< 6 ;

在這種情況下世沒有區別的

如果:

a =2

a >3 & a< 6 2大於 3 為假, 接著運算 2 小於6 為真,總的結果為假

a >3 && a< 6; 此時a 不大於3 結果為false 右邊不運算了.即短路.所以&& 比& 效率稍微高了一點.

public static void main(String[] args) {
        int x = 0;
        int y = 1;
        if (x == 0 && y == 1) {
            System.out.println(x + y);
        }
    }