Java 快速導覽 - 條件運算

Java 的條件運算子 (conditional operator) ,測試兩個運算元是否都為 true ,或有一個為 true ,另有一個三元運算子 (ternary operator) ,若第一個運算元為 true ,運算結果就是第二個運算元,反之結果為第三個運算元,如下列表

運算子功能範例
&&邏輯且a && b
||邏輯或a || b
?:條件選擇a ? b : c


這裡須注意,只有布林值可以做條件邏輯且及邏輯或的運算,通常關係運算會得到布林值,因此常會以多組關係運算子 (retional operator) 的運算式 (expression) 利用條件運算子建構更複雜的運算式。


以下為邏輯且的例子
class ConditionAndDemo {
    public static void main(String[] args) {
        int a = 12;
        int b = 22;
    
        if (a > b && a != b) {
            System.out.println("a > b");
        }
    
        if (a < b && a != b) {
            System.out.println("a < b");
        }
    }    
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ConditionAndDemo.java
   功能:示範條件運算子的使用
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



以下為邏輯或的例子
class ConditionOrDemo {
    public static void main(String[] args) {
        int a = 12;
        int b = 22;
    
        if (a > b || a != b) {
            System.out.println("yes, a > b || a != b");
        }
    
        if (a < b || a != b) {
            System.out.println("yes, a < b || a != b");
        }
    }    
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ConditionOrDemo.java
   功能:示範條件運算子的使用
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



條件選擇運算子是唯一一個三元運算子,需要三個運算元,三個運算元皆可為運算式,如下圖



例子如下
class ConditionalDemo {
    public static void main(String[] args) {
        int a = 12;
        int b = 22;
        int c = a > b ? a : b;
        
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println(c + " 較大");
    }
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ConditionalDemo.java
   功能:示範條件運算子的使用
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



中英文術語對照
條件運算子conditional operator
三元運算子ternary operator
關係運算子retional operator
運算式expression






沒有留言: