Java中短路與&&和短路或||


  短路的意思就是惰性運算,當符號左邊的式子已經可以確認最后結果時,符號右邊的式子就不進行計算了。

  短路與是Java語言中的一個邏輯運算符,記作&&,與編程語言中的與(&)相似,但是具有短路性質:在使用&進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算,而如果使用&&進行運算,當左邊為false時,右邊的表達式不會進行運算,因此&&被稱為短路與。

  短路或是Java語言中的一個邏輯運算符,記作||,與編程語言中的或(|)相似,但是具有短路性質:在使用|進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算,而如果使用||進行運算,當左邊為true時,右邊的表達式不會進行運算,因此||被稱為短路或。

短路與和短路或的驗證:

import java.util.Random;

/**
 * copyright(c)2021 zbh.ALL rights Reserved
 * <p>
 * 描述:
 *
 * @author zbh
 * @version 1.0
 * @date 2021/2/23
 */
public class Demo1 {
    public static void main(String[] args) {
        // 驗證短路與
        System.out.println("短路與:");
        boolean result = A() && B();
        System.out.println("---------------");
        // 驗證短路或
        System.out.println("短路或:");
        result = A() || B();
        System.out.println("---------------");
        // 驗證與
        System.out.println("與:");
        result = A() & B();
        System.out.println("---------------");
        // 驗證或
        System.out.println("或:");
        result = A() | B();
    }

    private static boolean A() {
        System.out.println("enter A");
        boolean result = false;
        // 生成隨機的true和false
        Random random = new Random();
        result = random.nextBoolean();
        // 輸出返回的boolean類型是true還是false
        System.out.println("A:"+result);
        return result;
    }

    private static boolean B() {
        System.out.println("enter B");
        boolean result = false;
        // 生成隨機的true和false
        Random random = new Random();
        result = random.nextBoolean();
        // 輸出返回的boolean類型是true還是false
        System.out.println("B"+result);
        return result;
    }
}

運行結果:

  由結果可得,當A()返回的是false,運行的是短路與時,B()並沒有執行。當A()返回的是true,運行的是短路或時,B()沒有執行。當執行與和或時,無論A()返回什么,B()都會執行。

總結

  • 對於與來說,要求所有的條件都要判斷。

  • 對於短路與來說,如果第一個條件為false,則后面的條件不再判斷。

  • 對於或來說,要求所有的條件都要判斷。

  • 對於短路或來說,如果第一個條件為true,則后面的條件不在判斷。


免責聲明!

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



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