由?:符號表示的,具體的含義其實就和if-else結構的含義差不多,這種運算子會將某個條件作兩種處理,如果滿足條件的話就執行第乙個結果,如果不滿足的話就執行另外乙個結果,例如:
int a,b,c;
a=2;
b=3;
c=a>b ? 100 :200;
這條語句的意思是,如果a>b的話,就將100賦給c,否則就將200賦給c;
首先看一下三元運算子的格式
[條件語句] ? [表示式1] : [表示式2]
其中如條件語句為真執行表示式1,否則執行表示式2.簡單的例子就不舉了,來點其它的。在jdk1.5以前的版本中,表示式1和表示式2都要求是相同的型別,比如都是string或者char之類的,在jdk1.5以後,有了自動拆箱和裝箱的原因,兩者只要其中一種或者兩者都能被拆箱即可,比如表示式1為integer,而表示式2為int型別的,比如如下
1 int a = 1;2 integer b = 2;
3 boolean c = ture;
4 int d = c ? b : a;
還有個需要注意的是,如果表示式1和表示式2的型別不相同,那麼他們需要對交集型別的自動參考轉換
JAVA 三元運算子
三元運算子定義 顧名思義,其操作元有三個,第乙個是條件表示式,剩餘兩個為值,條件表示式為真時運算取第乙個值,為假時取第二個值。語法為 條件表示式?表示式1 表示式2。說明 問號前面的位置是判斷的條件,判斷結果為bool型,為true時呼叫表示式1,為false時呼叫表示式2。示例 public st...
Java三元運算子
三元運算子他屬於流程控制語句方面,他的宣告方式 乙個問號和冒號,問號前面寫條件,問號後面寫 值,冒號後面也是寫值。什麼是條件呢?不管你用什麼方法,只要你能夠讓得出來的結果是false或true那麼 就是條件。三元運算子他是這樣的 如果條件的結果為true那麼就把問號後面的值交給接收者,如果條件的結果...
JAVA三元運算子
昨天,我在網上無意中看到了這麼一道題 public static void main string args 問 輸出的結果應該是什麼?相信很多人跟我一樣,一開始都以為輸出的是 9 但是呢,自己按照 測試了一下,發現輸出的卻是 9.0。1.若果兩個運算元不可轉換,則不做轉換,返回值為object型別...