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