java三目運算符boolean?x:y中的類型轉換

下面的代碼是面試寶典上的一道題目:

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值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章