首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

【Java 每日一題】20170214:短路邏輯與方法調用順序

     編輯:Java 相關知識

題目代碼


package Feb2017;
public class Ques0214 {
    public static void main(String[] args) {
        boolean b1 = true;
        if (b1 == true || method(true)) {
            System.out.println("location01");
        }
    }
    public static boolean method(boolean location) {
        if (location == true) {
            System.out.println("location02");
        }
        System.out.println("location03");
        return true;
    }
}

問題

主程序輸出結果?

答案


location01

解析

  • b1 == true 為 true。
  • || 為短路邏輯或:左邊為 true 時,不再計算右邊表達式。
  • method(true) 完全不會被調用,因此無任何輸出。
  • 進入 if 塊,打印 location01。

對比:若用 | (位或/非短路或)


if (b1 == true | method(true)) // 會調用 method,輸出 location02, location03, location01

核心知識點

  • &&、||:短路邏輯運算符,提升性能,可用於空指針保護(如 obj != null && obj.method())。
  • &、|:邏輯運算符(非短路),兩邊必執行。
  • &、| 同時也是位運算符(操作數為整數時)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved