Java三目運(yùn)算符用法舉例
Java是一種廣泛使用的編程語言,具有強(qiáng)大的功能和豐富的語法結(jié)構(gòu),其中三目運(yùn)算符是Java語言中的一個(gè)重要概念。在本篇博客中,我們將深入探討Java中的三目運(yùn)算符,包括其語法、用法和示例。
一、什么是三目運(yùn)算符?
Java中的三目運(yùn)算符是一種簡單的條件表達(dá)式,也稱為“三元表達(dá)式”。它由三個(gè)操作數(shù)組成,格式為:
boolean-expression ? expression1 : expression2
其中,“boolean-expression”是一個(gè)布爾表達(dá)式,如果它的結(jié)果為true,則返回“expression1”,否則返回“expression2”。
二、語法說明
三目運(yùn)算符的語法非常簡單,但是需要注意一些細(xì)節(jié)。下面是一些重要的語法說明:
三目運(yùn)算符包含三個(gè)操作數(shù),用問號和冒號分隔開來。
第一個(gè)操作數(shù)必須是一個(gè)布爾表達(dá)式,它用來決定返回哪個(gè)操作數(shù)。
第二個(gè)和第三個(gè)操作數(shù)可以是任何數(shù)據(jù)類型,但是它們必須是兼容的數(shù)據(jù)類型。
三目運(yùn)算符具有右結(jié)合性,也就是說,它從右向左進(jìn)行計(jì)算。
三目運(yùn)算符可以嵌套使用,但是需要注意正確的括號匹配。
三、使用示例
下面是一些使用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)算符是一種簡單而強(qiáng)大的條件表達(dá)式,可以方便地進(jìn)行條件判斷和賦值操作。它的語法非常簡單,但是需要注意一些細(xì)節(jié),尤其是在嵌套使用時(shí)需要注意正確的括號匹配。在實(shí)際編程中,三目運(yùn)算符是一個(gè)非常有用的工具,可以大大簡化代碼的編寫和閱讀。
附:三目運(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ù)類型, 整個(gè)表達(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具有相同的類型,那么整個(gè)條件運(yùn)算符結(jié)果的類型就是這個(gè)類型。(謝謝網(wǎng)友z157369514 指正)
2 假如一個(gè)表達(dá)式的類型是T,T是byte或short或char,另一個(gè)表達(dá)式的類型是int類型的常量表達(dá)式,而且這個(gè)常量表達(dá)式的值是可以用類型T表示的(也就是說,常量表達(dá)式的值是在類型T的取值范圍之內(nèi)),那么整個(gè)條件運(yùn)算符結(jié)果的類型就是T。
3 除以上情況外,假如表達(dá)式1和表達(dá)式2的類型不同,那么將進(jìn)行類型提升,整個(gè)條件運(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實(shí)現(xiàn)多人聊天工具(socket+多線程)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多人聊天工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08java實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符及子字符串個(gè)數(shù)的方法示例
這篇文章主要介紹了java實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符及子字符串個(gè)數(shù)的方法,涉及java針對字符串的遍歷、判斷及運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-01-01Java使用Lua實(shí)現(xiàn)動態(tài)擴(kuò)展和腳本自動升級
Lua是一種輕量級的腳本語言,常用于游戲開發(fā)和嵌入式系統(tǒng)中,這篇文章主要介紹了Java如何調(diào)用Lua實(shí)現(xiàn)動態(tài)擴(kuò)展和腳本自動升級,感興趣的可以學(xué)習(xí)下2023-08-08SpringBoot整合Elasticsearch實(shí)現(xiàn)索引和文檔的操作方法
Elasticsearch 基于 Apache Lucene 構(gòu)建,采用 Java 編寫,并使用 Lucene 構(gòu)建索引、提供搜索功能,本文分步驟通過綜合案例給大家分享SpringBoot整合Elasticsearch的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2021-05-05使用JMeter從JSON響應(yīng)的URL參數(shù)中提取特定值
在使用Apache JMeter進(jìn)行API測試時(shí),我們經(jīng)常需要從JSON格式的響應(yīng)中提取特定字段的值,這可以通過使用JMeter內(nèi)置的JSON提取器和正則表達(dá)式提取器來完成,本文介紹JMeter JSON提取特定值的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2024-03-03Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解
這篇文章主要介紹了Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12