Given the code fragment:



int x = 100;
int a = x++;
int b = ++x;
int c = x++;
int d = (a < b) ? (a < c) ? a : (b < c) ? b : c;
System.out.println(d);

What is the result?

A.

100

B.

101

C.

102

D.

103

E. Compilation fails

題解

宣告d變數的那行會編譯錯誤,原因在於「?:」條件三元運算子的使用方式是錯誤的。條件三元運算子的「?」和「:」必須是成對出現,有幾個「?」就有幾個「:」。