下面的代碼是面試寶典上的一道題目:
int a=5;
System.out.println("a="+((a<5)?10.9:9));
這段代碼的輸出是9.0。因爲三目運算符中有一個10.9,java會根據運算符的精度類型進行自動類型轉換。因此9會變爲9.0
char x='x';
int i=10;
System.out.println(false?i:x);
System.out.println(false?100:x);
而這段代碼的輸出是
120
x
對於第一行輸出,與上個例子相同,x被提升了類型,變爲int
而對於第二行,由於100是一個常量。若三目運算符中的兩個表達式有一個是常量表達式,另一個是類型T的表達式,且常量表達式可以被T表示,則輸出結果是T類型。因此輸出是字符x
System.out.println(true?100:x);
因此這行代碼將輸出d,也就是100對應的char值