Java三目運(yùn)算符用法舉例
Java是一種廣泛使用的編程語言,具有強(qiáng)大的功能和豐富的語法結(jié)構(gòu),其中三目運(yùn)算符是Java語言中的一個重要概念。在本篇博客中,我們將深入探討Java中的三目運(yùn)算符,包括其語法、用法和示例。
一、什么是三目運(yùn)算符?
Java中的三目運(yùn)算符是一種簡單的條件表達(dá)式,也稱為“三元表達(dá)式”。它由三個操作數(shù)組成,格式為:
boolean-expression ? expression1 : expression2
其中,“boolean-expression”是一個布爾表達(dá)式,如果它的結(jié)果為true,則返回“expression1”,否則返回“expression2”。
二、語法說明
三目運(yùn)算符的語法非常簡單,但是需要注意一些細(xì)節(jié)。下面是一些重要的語法說明:
三目運(yùn)算符包含三個操作數(shù),用問號和冒號分隔開來。
第一個操作數(shù)必須是一個布爾表達(dá)式,它用來決定返回哪個操作數(shù)。
第二個和第三個操作數(shù)可以是任何數(shù)據(jù)類型,但是它們必須是兼容的數(shù)據(jù)類型。
三目運(yùn)算符具有右結(jié)合性,也就是說,它從右向左進(jìn)行計算。
三目運(yùn)算符可以嵌套使用,但是需要注意正確的括號匹配。
三、使用示例
下面是一些使用Java三目運(yùn)算符的示例:
- 判斷一個數(shù)是正數(shù)還是負(fù)數(shù):
int num = -10; String result = (num > 0) ? "positive" : "negative"; System.out.println(result);
輸出結(jié)果為“negative”。
- 判斷一個人的性別:
char gender = 'M'; String result = (gender == 'M') ? "male" : "female"; System.out.println(result);
輸出結(jié)果為“male”。
- 判斷一個數(shù)是否為偶數(shù):
int num = 6; String result = (num % 2 == 0) ? "even" : "odd"; System.out.println(result);
輸出結(jié)果為“even”。
- 判斷一個年份是否為閏年:
int year = 2022; String result = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? "leap year" : "not leap year"; System.out.println(result);
輸出結(jié)果為“not leap year”。
四、總結(jié)
Java中的三目運(yùn)算符是一種簡單而強(qiáng)大的條件表達(dá)式,可以方便地進(jìn)行條件判斷和賦值操作。它的語法非常簡單,但是需要注意一些細(xì)節(jié),尤其是在嵌套使用時需要注意正確的括號匹配。在實際編程中,三目運(yùn)算符是一個非常有用的工具,可以大大簡化代碼的編寫和閱讀。
附:三目運(yùn)算符返回值規(guī)則
條件(三目)運(yùn)算符:表達(dá)式 1 ? 表達(dá)式 2 :表達(dá)式 3
注意事項:
- 右結(jié)合性:a > b ? a : i > j ? i : j 相當(dāng)于 a > b ? a : ( i > j ? i : j )
- 三目運(yùn)算符中:第二個表達(dá)式和第三個表達(dá)式中如果都為基本數(shù)據(jù)類型, 整個表達(dá)式的運(yùn)算結(jié)果由容量高的決定。如:int x = 4; x > 4 ? 99.9 : 9;
99.9 是 double 類型,而 9 是 int 類型,double 容量高,所以最后結(jié)果為 9.0。
三目運(yùn)算符返回值規(guī)則:
1 假如表達(dá)式2和表達(dá)式3具有相同的類型,那么整個條件運(yùn)算符結(jié)果的類型就是這個類型。(謝謝網(wǎng)友z157369514 指正)
2 假如一個表達(dá)式的類型是T,T是byte或short或char,另一個表達(dá)式的類型是int類型的常量表達(dá)式,而且這個常量表達(dá)式的值是可以用類型T表示的(也就是說,常量表達(dá)式的值是在類型T的取值范圍之內(nèi)),那么整個條件運(yùn)算符結(jié)果的類型就是T。
3 除以上情況外,假如表達(dá)式1和表達(dá)式2的類型不同,那么將進(jìn)行類型提升,整個條件運(yùn)算符結(jié)果的類型就是提升后的類型
以下是測試代碼:
package demo;
public class TernaryOperator {
public static void main(String[] args) {
int n = 8;
System.out.println(n>6?1:2.0);//1.0 規(guī)則3
System.out.println(n>6?1:2);//1 規(guī)則1
System.out.println(n>6?'a':2L);//97L 規(guī)則3
System.out.println(n>6?'a':2);//a 規(guī)則2
System.out.println(n>6?'a':Character.MAX_VALUE);//a 規(guī)則2
System.out.println(n = (n>6?'a':Character.MAX_VALUE+1));//97 規(guī)則3
}
}到此這篇關(guān)于Java三目運(yùn)算符的文章就介紹到這了,更多相關(guān)Java三目運(yùn)算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中BufferedReader與Scanner讀入的區(qū)別詳解
這篇文章主要介紹了Java中BufferedReader與Scanner讀入的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
SpringMVC對自定義controller入?yún)㈩A(yù)處理方式
這篇文章主要介紹了SpringMVC對自定義controller入?yún)㈩A(yù)處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
springboot中websocket簡單實現(xiàn)
本文主要介紹了springboot中websocket簡單實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
把Java程序轉(zhuǎn)換成exe,可直接運(yùn)行的實現(xiàn)
這篇文章主要介紹了把Java程序轉(zhuǎn)換成exe,可直接運(yùn)行的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
使用Java和WebSocket實現(xiàn)網(wǎng)頁聊天室實例代碼
WebSocket是HTML5一種新的協(xié)議,它實現(xiàn)了瀏覽器與服務(wù)器全雙工通信,這里就將使用WebSocket來開發(fā)網(wǎng)頁聊天室,對Java和WebSocket實現(xiàn)網(wǎng)頁聊天室的實例代碼感興趣的朋友一起學(xué)習(xí)吧2016-06-06

