Given:



public class Test {

    public static void main(String[] args) {
        if (args[0].equals("Hello") ? false : true) {
            System.out.println("Success");
        } else {
            System.out.println("Failure");
        }
    }
}

And given the commands:

javac Test.Java
java Test Hello

What is the result?

A.

Success

B.

Failure

C. Compilation fails.
D. An exception is thrown at runtime

題解

題目執行的指令會編譯「Test.java」,由於Test類別有用public修飾,因此預設會執行Test類別的main方法,並把「Hello」作為main的參數。參數的索引值從0開始。

「args[0].equals("Hello") ? false : true」中的「args[0].equals("Hello")」會判斷args[0]所參考到的字串物件是否在邏輯上和「Hello」字串物件相同,由於第一個(索引值0)參數輸入「Hello」,因此這個的結果會是true。再來這個結果會代入三元條件的運算元中,所以會變成「true ? false : true」,將回傳false。最後程式輸出「Failure」。