Java中的三元運(yùn)算(三目運(yùn)算)以后用得到!
前言
Java 中的三元運(yùn)算,平時(shí)也叫做三目運(yùn)算,大家了解嗎?下面就詳細(xì)介紹一下,以后在項(xiàng)目編程中用得到。
一、Java運(yùn)算符
在最底層,Java 中的數(shù)據(jù)是通過(guò)使用運(yùn)算符來(lái)操作的。運(yùn)算符是一種特殊的符號(hào),用來(lái)表示數(shù)據(jù)的運(yùn)算、賦值和比較等等。每一種編程語(yǔ)言都有運(yùn)算符,在 Java 中運(yùn)算符可以分為以下幾類:
- 算術(shù)運(yùn)算符:用于對(duì)數(shù)字類型的數(shù)據(jù)執(zhí)行數(shù)學(xué)運(yùn)算,包括加、減、乘、除、求余數(shù)、自增、自減等運(yùn)算。
- 位運(yùn)算符:用于對(duì)二進(jìn)制數(shù)進(jìn)行操作,包括按位與、按位或、按位異或、左移、右移等運(yùn)算。位運(yùn)算符只能用于整數(shù)類型的數(shù)據(jù)。
- 關(guān)系運(yùn)算符:用于比較兩個(gè)值之間的大小關(guān)系,結(jié)果為布爾類型,只有兩個(gè)值的數(shù)據(jù)類型相同才能進(jìn)行比較。
- 邏輯運(yùn)算符:用于將兩個(gè)布爾類型的值進(jìn)行邏輯運(yùn)算,包括與、或、非等運(yùn)算。
- 賦值運(yùn)算符:用于將一個(gè)值賦給變量。
- 條件運(yùn)算符:用于根據(jù)某條件的成立與否的結(jié)果來(lái)決定返回的結(jié)果。它是 Java 中唯一一個(gè)三元運(yùn)算符。
- 類型運(yùn)算符:用于測(cè)試數(shù)據(jù)類型。它是一種 Java 中較少使用的運(yùn)算符,可以用
instanceof
來(lái)測(cè)試一個(gè)對(duì)象是否為某個(gè)類的實(shí)例。
二、Java三元運(yùn)算符
1.三元運(yùn)算符介紹
Java 中的三元操作符是一種特殊的條件運(yùn)算符,也被稱為 “三目運(yùn)算符” 。它顯得比較特別,因?yàn)樗腥齻€(gè)操作數(shù),但是呢?它確實(shí)是運(yùn)算符的一種,因?yàn)樽罱K也會(huì)只生成一個(gè)值。三元運(yùn)算使用問(wèn)號(hào)(?
)和冒號(hào)(:
)來(lái)表示,語(yǔ)法格式如下:
boolean-exp ? value1 : value2;
其中,boolean-exp
是一個(gè)布爾表達(dá)式,如果表達(dá)式的值為 true
,則返回 value1
的值,否則返回 value2
的值。它的作用就是根據(jù) boolean-exp
的值來(lái)選擇返回的結(jié)果。也就是 value1
或 value2
只能有一個(gè)成為運(yùn)算的最終結(jié)果值。
以下是一個(gè)使用三元運(yùn)算符的實(shí)際例子,用來(lái)比較兩個(gè)數(shù)的大小,如果第一個(gè)數(shù)大于等于第二個(gè)數(shù),則返回第一個(gè)數(shù),否則返回第二個(gè)數(shù):
int a = 10; int b = 20; int max = (a > b) ? a : b;
在這個(gè)例子中,boolean-exp
是表達(dá)式 a > b
,它的值為 false
,所以 value2
的值 b
將被賦給 max
變量,因此,max
的值為20。
2.三元運(yùn)算嵌套
三元運(yùn)算是可以嵌套使用的,嵌套后可以處理較復(fù)雜的情況,但是建議嵌套不要超三層,否則就增加了情況的復(fù)雜性。以下是一個(gè)三元運(yùn)算嵌套的示例代碼:
int a = 10; int b = 20; int c = 30; int max = a > b ? (a > c ? a : c) : (b > c ? b : c);
首先將變量 a
、b
、c
的值分別賦值。然后根據(jù)嵌套的三元運(yùn)算符選擇其中的最大值,即如果變量 a
的值大于變量 b
的值,則比較變量 a
與變量 c
的值;否則比較變量 b
與變量 c
的值。最終將選出的最大值賦值給 max
變量。
3.三元運(yùn)算 VS if-else
到這里大家也發(fā)現(xiàn)了,在某些時(shí)候,三元運(yùn)算和 if-else
可以切換。是的,某些時(shí)候三元運(yùn)算可以作為 if-else
的精簡(jiǎn)寫法。我們將上面的代碼換成 if-else
的寫法:
int a = 10; int b = 20; int max; if (a > b) { max = a; } else { max = b; }
這兩種代碼寫法最終效果是一樣的,但是三元運(yùn)算更加簡(jiǎn)潔,不過(guò)它是不支持多個(gè)語(yǔ)句的,if-else
的代碼塊中可以有多個(gè)語(yǔ)句。
附:Java實(shí)現(xiàn) 三目運(yùn)算符 判斷數(shù)字是奇數(shù)還是偶數(shù)
具體代碼如下:
package package2; import java.util.Scanner; /** * 用三元運(yùn)算符判斷奇數(shù)和偶數(shù) * @author asus * 三元運(yùn)算符是if...else條件語(yǔ)句的簡(jiǎn)寫格式,它可以完成簡(jiǎn)單的條件判斷。 * 通過(guò)三元運(yùn)算符判斷該數(shù)字與2的余數(shù),如果余數(shù)為0說(shuō)明其是偶數(shù),否則是奇數(shù)。 */ public class ParityCheck { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); //創(chuàng)建輸入流掃描器 System.out.println("請(qǐng)輸入一個(gè)整數(shù):"); long number=scan.nextLong(); //獲取用戶輸入的整數(shù) String check=(number%2==0)?"這個(gè)數(shù)字是:偶數(shù)":"這個(gè)數(shù)字是:奇數(shù)"; System.out.println(check); } }
總結(jié)
三元運(yùn)算符可以用于對(duì)變量進(jìn)行賦值,也可以用于方法的調(diào)用和表達(dá)式的返回,可以簡(jiǎn)化代碼,使其更加簡(jiǎn)潔,同時(shí)也方便代碼維護(hù)和開(kāi)發(fā)。但是如果說(shuō)你想要頻繁的使用三元運(yùn)算,還得考慮考慮,因?yàn)樵诖a量多的場(chǎng)景中,容易造成可讀性差。比如條件表達(dá)式復(fù)雜、命名復(fù)雜等等。
到此這篇關(guān)于Java中三元運(yùn)算(三目運(yùn)算)的文章就介紹到這了,更多相關(guān)Java三元運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)圖書館借閱系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖書館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java不指定長(zhǎng)度的二維數(shù)組實(shí)例
今天小編就為大家分享一篇Java不指定長(zhǎng)度的二維數(shù)組實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07詳解java一維數(shù)組及練習(xí)題實(shí)例
在本篇文章里小編給大家整理了關(guān)于java一維數(shù)組及練習(xí)題的相關(guān)知識(shí)點(diǎn)和實(shí)例代碼,有需要的朋友們跟著學(xué)習(xí)下。2019-07-07springboot整合redis修改分區(qū)的操作流程
這篇文章主要介紹了springboot整合redis修改分區(qū)的操作流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java依賴-關(guān)聯(lián)-聚合-組合之間區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java依賴-關(guān)聯(lián)-聚合-組合之間區(qū)別理解,依賴關(guān)系比較好區(qū)分,它是耦合度最弱的一種,下文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2017-08-08淺談在springboot中使用定時(shí)任務(wù)的方式
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著在springboot中使用定時(shí)任務(wù)的方式展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06