底下的Java程式會輸出什麼結果?
1 2 3 4 5 6 7 8 | public class DosEquis { 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。
沒有留言:
張貼留言