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

三目運算java

發布時間: 2022-06-30 01:42:58

java三目運算符問題如下,為什麼答案選c不選b

答案:因為三目運算符的計算機制,會對符號?右側的兩個數據類型進行類型轉換

具體分析如下:

x > 4 ? 99.9 : 9表達式在計算時,會把先把整形9類型轉換為99.9對應的浮點數類型,最後輸出就是9.0。


如果有用,煩請採納並且點擊右上角的關注哈。

Ⅱ 在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 三目運算符

其實這主要是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三目運算符問題

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

Ⅵ java什麼叫「三目條件運算符」

三目運算符,又稱條件運算符,是計算機語言(c,c++,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算符的結合性是右結合的。
定義:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。加括弧()是為了方便閱讀,不加也是一樣的。
可以理解為"(a<b)?a:b"是一個"條件表達式",它是這樣執行的:如果a<b為真,則表達式取a值,否則取b值.條件運算符由兩個符號組成"?「和」:", 要求有3個操作對象,所以也叫它三目運算符,
(1)它的一般形式為:<表達式1> ? <表達式2> : <表達式3>; "?"運算符的含義是:先求表達式1的值,如果為真,則執行表達式2,並返回表達式2的結果;如果表達式1的值為假,則執行表達式3,並返回表達式3的結果。
(2)通常情況下,表達式1是關系表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常量,變數或表達式.
(3)在程序中,通過把條件表達式的值直接賦予某個變數.
A=(b>c)?d:e1

(4)條件表達式的優先順序別僅高於賦值運算符,而低於前面遇到過的所有運算符.
因此,min=(a<b)?a:b括弧可以不要,可直接寫成,min=a<b?a:b如果有x<y?x+1:y-1等效於x<y(x+1):(y-1)而不等效於(x<y?x+1:y)-1
(5) 條件運算符的結合方向為"自右至左".
(6) 條件表達式允許嵌套,即允許條件表達式中的表達式2和表達式3又是一個條件表達式.例如:下面的例子

EL表達式中使用三目運算符:
單個判斷:
${postNum == null ? 0 : postNum}
Servlet:
PwPersonalDetails personalDetails=pwPersonalDetailsService.
findById(borrowerId);//查詢個人信息
request.setAttribute("personalDetails", personalDetails);//傳參
jsp:

<div>
<p>有無購車:</p>
<p id="PurchaseCar">
${personalDetails.purchaseCar eq true ? "有購車":"無購車"}
</p>
</div>1234567891011121314

EL表達式結合三目運算符多個判斷條件寫法:
比如:我後台查詢出來的borrowMoney(表單)數據有bidTypeId(標種類型)分別為1-7七種:我要傳遞到前端html給一個p標簽根據bidTypeId不同給予不同的名稱:
現在直接將多個三目運算符拼成多個條件的寫法:
${borrowMoney.bidTypeId eq 1 ? '信用額度:':(borrowMoney.bidTypeId eq 2 ? '抵押額度:':(borrowMoney.bidTypeId eq 5 ?'擔保額度:':(borrowMoney.bidTypeId eq 7 ? '流轉額度:':'信用額度:')))}

希望對您有所幫助!~

Ⅶ 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

這是編譯器的自動裝箱/拆箱轉換引起的問題,
自動裝箱/拆箱的特性,只要一個運算中有不同的類型,涉及到類型轉換,那麼編譯器會往下(基本類型)轉型,再進行運算。 就是說,如果運算中有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);
保持類型的一致就不會自動轉型了

Ⅸ 在JAVA中,什麼是單目/雙目/三目運算符

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

Ⅹ java三目運算符

在Java裡面有一個唯一的三目運算符,那就是:
? :
條件a? 結果1:結果2;
其意思就是:當條件a成立時,返回結果1,否則返回結果2;
這個就相當於是一個分支程序。但是它只是一個運算。

熱點內容
單片機閃爍燈編程 發布:2025-02-04 15:50:19 瀏覽:877
mac上傳ftp 發布:2025-02-04 15:49:36 瀏覽:266
安卓手機的充電器線不好使了怎麼辦 發布:2025-02-04 15:44:28 瀏覽:633
騰訊安卓手游下載平台叫什麼名字 發布:2025-02-04 15:43:48 瀏覽:6
squid源碼 發布:2025-02-04 15:38:07 瀏覽:794
30秒創意廣告腳本 發布:2025-02-04 15:36:35 瀏覽:5
暴風影音怎麼不能緩存 發布:2025-02-04 15:34:24 瀏覽:905
超級訪問劉亦菲 發布:2025-02-04 15:30:22 瀏覽:318
C語言加加b 發布:2025-02-04 15:29:44 瀏覽:278
存儲系統的發展 發布:2025-02-04 15:10:29 瀏覽:585