當前位置:首頁 » 編程語言 » java中三目運算

java中三目運算

發布時間: 2022-07-26 12:37:03

『壹』 java怎麼用三目運算符,輸入任意比較三個數大小,輸出中間數

int comp(int a, int b, int c)

{

return a >= b ? (a >= c ? (b >= c ? b : c) : a) : (a >= c ? a : (b >= c ? c : b));

}

『貳』 java 三目運算符

其實這主要是JAVA重載和基本數據類型自動轉型造成的。
JAVA重載:這里主要調用了println(char x) 和println(int x) 兩個方法。
基本數據類型自動轉型原則中有一條:有多種類型混合運算時,系統將所有類型轉換為大的,然後再進行計算。
自動轉型順序:
byte->short(char)->int->long->float->double.
還有0~65535可以認為是int也可以是char。
System.out.println(true?x:0);此處0被認為是char,所以輸出b,倘若把0改為65536,則輸出66.
同理
System.out.println(true?x:1111111110);此處1111111110已經大於了65535,所以x被自動轉型為int再輸出,輸出66.

System.out.println(false?i:x);也是同理,將x轉換為int,輸出 66.
其實我講得也不是非常詳細,有興趣可以仔細看下重載和基本數據類型轉型的章節,希望能幫到你。

『叄』 java三目運算符

三目運算符a
>
b
?
a
:
b運算規則是:如果?前面的等式為true,即a>b,則執行返回a,否則返回b;
先判斷變數year是否大於對象a的year值,如果大於就返回1,小於就繼續判斷year是否小於對象a的year值,如果小於就返回-1;此後就是year==a.year的情況,依次判斷月份和日

『肆』 在JAVA中,什麼是單目/雙目/三目運算符

所謂單目運算符就是只有需要一個操作數的運算符,如:--、++同理,雙目運算符就是需要兩個操作數的運算符,如:+、-、*、/、=
等。三目運算符只有一個
?
:
。(需要三個操作數)

『伍』 JAVA三目運算符問題

1、三目運算符 (表達式1)?(表達式2):(表達式3),計算方法是這樣的:表達式1是一個邏輯表達式,如果其值為true,則整個表達式的值為表達式2的值,否則為表達式3的值

2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);結果為i = 8.因為5 > 3為true,所以i = 5 + 3.

3、根據三目運算符的從右到左的結合性,我是這樣劃分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以應該從最右邊的那個表達式開始計算,結果應該是1、0、-1中的一個值。

以上純屬個人理解。沒搞清楚你這個演算法到底是什麼意義。。。。還有你的compare()方法不能聲明為靜態。

『陸』 Java三目運算符

這個問題主要考察的應該不是三目運算符,而是java運算的自動轉換。
i為int類型
x為char類型
第一行計算x和0,此時0可以被看作是char類型,所以x並沒有被轉換,而是直接輸出B
第二行計算x和1111111110,而1111111110是無法保存為char類型的,只能當作int,所以此時x需要被強轉成int之後再進行運算,char類型的x在強轉成int之後就變成了他的asc碼。也就是66。
第三行,計算x和i,i是int類型,所以與第二行同理,x被自動轉換成int,結果為66。
如果問題解決,請採納本答案

『柒』 java中三目運算符

先學java的叫它,三元運算符;先學c的叫它三目運算符
即( ?: )
如名字表示的三元運算符需要三個操作數。
語法為:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果為bool型,為true時調用表達式1,為false時調用表達式2。
其邏輯為:「如果為真執行第一個,否則執行第二個。」

『捌』 在Java 里什麼時候使用三目運算比較好

需要進行判斷的時候使用三目運算比較好,可以替換if--else

三目運算符,又稱條件運算符。條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。

例如:

//判斷一個數的正負
publicStringjudge(inta){

/*if(a>0){
return"a是正數";
}else{
return"a是負數";
}*/

//三目運算符
Stringc=a>0?"a是正數":"a是負數";

returnc;
}

此例子裡面三目運算符與if--else效果是一樣的。

『玖』 三目運算符 java

這是編譯器的自動裝箱/拆箱轉換引起的問題,
自動裝箱/拆箱的特性,只要一個運算中有不同的類型,涉及到類型轉換,那麼編譯器會往下(基本類型)轉型,再進行運算。 就是說,如果運算中有int和Integer,Integer會先轉成int再計算。
所以你的代碼中,最後一行
i = StringUtils.isEmpty(ComNo)?RecordType:0;
實際的運行會是這樣 i = StringUtils.isEmpty(ComNo)?RecordType.intValue():0;
RecordType為null,所以會報錯。
可以改成:i = StringUtils.isEmpty(ComNo) ? RecordType : Integer.valueOf(0);
保持類型的一致就不會自動轉型了

熱點內容
領航s1配置怎麼樣 發布:2025-01-26 09:58:10 瀏覽:763
公司區域網搭建伺服器搭建 發布:2025-01-26 09:16:56 瀏覽:433
android裁剪圓形圖片 發布:2025-01-26 09:05:56 瀏覽:411
小貸源碼 發布:2025-01-26 08:20:58 瀏覽:536
更換電腦名登錄伺服器 發布:2025-01-26 07:56:52 瀏覽:240
後台phpjava 發布:2025-01-26 07:12:34 瀏覽:657
微信解綁密碼是什麼 發布:2025-01-26 06:50:07 瀏覽:734
app如何訪問伺服器 發布:2025-01-26 06:36:56 瀏覽:741
拳皇安卓單機哪裡下載 發布:2025-01-26 06:30:46 瀏覽:539
注冊會員時積分消費密碼是什麼 發布:2025-01-26 06:30:45 瀏覽:247