Java 中與(&)短路與(&&)以及 或(|)短路或(||)的關系


一、邏輯運算符的使用

  1)邏輯運算符的連接的是布爾表達式,要與位運算符做區分。

  2)使用方法:

public class Test {
   public static void main(String[] args) {
      System.out.println(true & false);//結果為false
      System.out.println(true & true);//結果為true
      System.out.println(false & false);//結果為false
      System.out.println(false & true);//結果為false
      /*
      System.out.println(true && false);//結果為false
      System.out.println(true && true);//結果為true
     System.out.println(false && false);//結果為false
      System.out.println(false && true);//結果為false
       */
   }

      }

    結論:邏輯與只有當符號兩邊的表達式都為true時結果才為true

==============================================================

public class Test {
   public static void main(String[] args) {
      System.out.println(true | false);//結果為true
      System.out.println(true | true);//結果為true
      System.out.println(false | false);//結果為false
      System.out.println(false | true);//結果為true
      /*
      System.out.println(true || false);//結果為true
      System.out.println(true || true);//結果為true
     System.out.println(false || false);//結果為false
      System.out.println(false || true);//結果為true
       */
   }

 }

結論:邏輯或只有當符號兩邊的表達式都為false時結果才為false

==============================================================

二、‘短路與’、‘短路或’

  1)‘&、|’與‘&&、||’的區別

      單個的邏輯運算符會將左右兩個表達式都進行運算得出布爾值,再進行運算。‘短路與’若左邊表達式為false則不會對右邊的表達式進行判斷,

    因為結果必為false;‘短路或’若左邊表達式結果為true則不會對右邊的表達式進行判斷,因為結果必為true。

      短語的邏輯運算符相當於普通的邏輯運算符效率更高些。

三、例子

public class Test {
   public static void main(String[] args) {

  int num = 1;
  System.out.println(false & num++==1);//即使前面為false,右邊的表達式還是會繼續執行,即num++
  System.out.println(num);//2
  System.out.println("=====華麗的分割線=====");
  num = 1;
  System.out.println(false && num++==1);//左邊的表達式為false,右邊的表達式將不會執行,即num不會自增
  System.out.println(num);//1

   }

}

輸入的結果為:

false
2
=====華麗的分割線=====
false
1

短路與是同樣的道理,大家可以自己編寫代碼驗證一下

==============================================================

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM