public
static
void
main(string args)
99999判斷結果:97
-1判斷結果 :97
0判斷結果 :a
65535判斷結果:a
65536判斷結果:97
i判斷結果 :97
總結出了以下的結論:
(1)假如表示式1和表示式2具有相同的型別,那麼整個條件運算子結果的型別就是這個型別。
(2)假如乙個表示式的型別是t,t是byte或short或char,另乙個表示式的型別是int型別的常量表示式,而且這個常量表示式的值是可以用型別t表示的(也就是說,常量表示式的值是在型別t的取值範圍之內),那麼整個條件運算子結果的型別就是t。
(3)除以上情況外,假如表示式1和表示式2的型別不同,那麼將進行型別提公升,整個條件運算子結果的型別就是提公升後的型別
根據上述結論可以看出,參考結論(2)char型別的取值範圍為0-65535,在char取值範圍中均會返回char型別的值,所以輸出a。-1和65536超出了char的取值範圍,所以型別提公升為int型,輸出a對應的ascii碼。最後一條判斷,已經明確了i為int型別,所以根據結論三,型別提公升,輸出結果97。
三目運算子 型別自動提公升
今天偶然發現一問題,如下 public static void main string args 涉及到了三目運算中型別自動提公升的一些問題,運算結果如下 99999判斷結果 97 1判斷結果 97 0判斷結果 a 65535判斷結果 a 65536判斷結果 97 i判斷結果 97 總結出了以下的結...
Java 三目運算子
對於有些選擇分支結構,可以使用簡單的條件運算子來代替.如 引用 if a 可以用下面的條件運算子來處理 min a 其中 a條件運算子由兩個符號組成 和 要求有3個操作物件,所以也叫它三目運算子,它是c語言中唯一的三目運算子.它的一般形式為 引用表示式1?表示式2 表示式3 以下是關於條件運算子的幾...
Java 三目運算子
舉個例子 integer maxlevel int levels int maxleveldisplay maxlevel levels levels maxlevel 1 三目運算子標準格式 a?b c 條件a滿足時返回b,不滿足時返回c,本例中 maxlevel levels時,返回levels...