前言
Java 中的三元運算,平時也叫做三目運算,大家了解嗎?下面就詳細介紹一下,以后在專案編程中用得到,
一、Java運算子
在最底層,Java 中的資料是通過使用運算子來操作的,運算子是一種特殊的符號,用來表示資料的運算、賦值和比較等等,每一種編程語言都有運算子,在 Java 中運算子可以分為以下幾類:
-
算術運算子:用于對數字型別的資料執行數學運算,包括加、減、乘、除、求余數、自增、自減等運算,
-
位運算子:用于對二進制數進行操作,包括按位與、按位或、按位異或、左移、右移等運算,位運算子只能用于整數型別的資料,
-
關系運算子:用于比較兩個值之間的大小關系,結果為布爾型別,只有兩個值的資料型別相同才能進行比較,
-
邏輯運算子:用于將兩個布爾型別的值進行邏輯運算,包括與、或、非等運算,
-
賦值運算子:用于將一個值賦給變數,
-
條件運算子:用于根據某條件的成立與否的結果來決定回傳的結果,它是 Java 中唯一一個三元運算子,
-
型別運算子:用于測驗資料型別,它是一種 Java 中較少使用的運算子,可以用
instanceof
來測驗一個物件是否為某個類的實體,
二、Java三元運算子
1.三元運算子介紹
Java 中的三元運算子是一種特殊的條件運算子,也被稱為 “三目運算子”,它顯得比較特別,因為它有三個運算元,但是呢?它確實是運算子的一種,因為最終也會只生成一個值,三元運算使用問號(?
)和冒號(:
)來表示,語法格式如下:
boolean-exp ? value1 : value2;
其中,boolean-exp
是一個布爾運算式,如果運算式的值為 true
,則回傳 value1
的值,否則回傳 value2
的值,它的作用就是根據 boolean-exp
的值來選擇回傳的結果,也就是 value1
或 value2
只能有一個成為運算的最終結果值,
以下是一個使用三元運算子的實際例子,用來比較兩個數的大小,如果第一個數大于等于第二個數,則回傳第一個數,否則回傳第二個數:
int a = 10;
int b = 20;
int max = (a > b) ? a : b;
在這個例子中,boolean-exp
是運算式 a > b
,它的值為 false
,所以 value2
的值 b
將被賦給 max
變數,因此,max
的值為20,
2.三元運算嵌套
三元運算是可以嵌套使用的,嵌套后可以處理較復雜的情況,但是建議嵌套不要超三層,否則就增加了情況的復雜性,以下是一個三元運算嵌套的示例代碼:
int a = 10;
int b = 20;
int c = 30;
int max = a > b ? (a > c ? a : c) : (b > c ? b : c);
首先將變數 a
、b
、c
的值分別賦值,然后根據嵌套的三元運算子選擇其中的最大值,即如果變數 a
的值大于變數 b
的值,則比較變數 a
與變數 c
的值;否則比較變數 b
與變數 c
的值,最終將選出的最大值賦值給 max
變數,
3.三元運算 VS if-else
到這里大家也發現了,在某些時候,三元運算和 if-else
可以切換,是的,某些時候三元運算可以作為 if-else
的精簡寫法,我們將上面的代碼換成 if-else
的寫法:
int a = 10;
int b = 20;
int max;
if (a > b) {
max = a;
} else {
max = b;
}
這兩種代碼寫法最終效果是一樣的,但是三元運算更加簡潔,不過它是不支持多個陳述句的,if-else
的代碼塊中可以有多個陳述句,
總結
三元運算子可以用于對變數進行賦值,也可以用于方法的呼叫和運算式的回傳,可以簡化代碼,使其更加簡潔,同時也方便代碼維護和開發,但是如果說你想要頻繁的使用三元運算,還得考慮考慮,因為在代碼量多的場景中,容易造成可讀性差,比如條件運算式復雜、命名復雜等等,
本文來自博客園,作者:Ongoing蝸牛,轉載請注明原文鏈接:https://www.cnblogs.com/coding-rocket/p/17421858.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/553076.html
標籤:其他
上一篇:Java設計模式-組合模式
下一篇:返回列表