JAVA三元運算子

2021-09-11 08:35:39 字數 575 閱讀 4001

昨天,我在網上無意中看到了這麼一道題:

public static void main(string args)
問:輸出的結果應該是什麼?

相信很多人跟我一樣,一開始都以為輸出的是:9;但是呢,自己按照**測試了一下,發現輸出的卻是:9.0。

1.若果兩個運算元不可轉換,則不做轉換,返回值為object型別。

2.若兩個運算元是明確型別的表示式(比如變數),則按照正常的二進位制數字來轉換。int型別轉換為long型別,long型別轉換成float型別。

3.若兩個運算元中有乙個是數字s,另外乙個是表示式,且其型別為t,那麼,若數字s在t的範圍內,則轉換為t型別;若s超過了t的範圍,則t轉換為s型別。

4.若兩個運算元字都是直接數字。則返回值型別為範圍較大者。

關於這段規則,只有第四點是最明白的,其他三點都比較雲裡霧裡。

關於第一點,什麼叫做運算元不可轉換?是指型別不明確嗎?那什麼情況下會出現型別不明確的時候呢?以上文為例,指的是表示式的結果型別不明確,還是後面兩個的型別不明確呢?

第二點,說的是變數的型別嗎?還有第三點就更暈了,歡迎有大佬來指點迷津。

JAVA 三元運算子

三元運算子定義 顧名思義,其操作元有三個,第乙個是條件表示式,剩餘兩個為值,條件表示式為真時運算取第乙個值,為假時取第二個值。語法為 條件表示式?表示式1 表示式2。說明 問號前面的位置是判斷的條件,判斷結果為bool型,為true時呼叫表示式1,為false時呼叫表示式2。示例 public st...

java三元運算子

由?符號表示的,具體的含義其實就和if else結構的含義差不多,這種運算子會將某個條件作兩種處理,如果滿足條件的話就執行第乙個結果,如果不滿足的話就執行另外乙個結果,例如 int a,b,c a 2 b 3 c a b 100 200 這條語句的意思是,如果a b的話,就將100賦給c,否則就將2...

Java三元運算子

三元運算子他屬於流程控制語句方面,他的宣告方式 乙個問號和冒號,問號前面寫條件,問號後面寫 值,冒號後面也是寫值。什麼是條件呢?不管你用什麼方法,只要你能夠讓得出來的結果是false或true那麼 就是條件。三元運算子他是這樣的 如果條件的結果為true那麼就把問號後面的值交給接收者,如果條件的結果...