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

