1. 程式人生 > >Python Expressive Puzzlers 8: Does Equal

Python Expressive Puzzlers 8: Does Equal

Python Expressive Puzzlers 8: Does Equal

底下的Java程式會輸出什麼結果?

public static void main(String[] args) {    char x = 'X';    int i = 0;    System.out.print(true  ? x : 0);    System.out.print(false ? i : x);   }}

輸出結果會是XX嗎?根據 JLS 15.25的說明(true ? x : 0)的運算結果會是char型別,而(false ? i : x)的運算結果會是int型別。所以輸出結果為X88

而 Python 只有 <expression1> if <condition> else <expression2>的語法,沒有 Java 的 conditional operator 的語法,於是不會有這樣子的Pitfall。