java中三元運算符詳解


三元運算符:

顧名思義,三元運算符需要三個操作數。
語法為:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果為bool型,為true時調用表達式1,為false時調用表達式2。
其邏輯為:“如果為真執行第一個,否則執行第二個。”

   比如,java中基本類型 boolean的包裝類 Boolean中“.valueOf(boolean b)”方法的源碼定義:
public static Boolean volueOf (boolean b){
  ruturn b ? Boolean.True:Boolean.False;
}
解析:方法體中的表達式用到了三元運算符,對應於上面的說明,其中:
  條件表達式:b
  表達式1: Boolean.True
  表達式2: Boolean.False
  方法體中表達式整體意思:返回變量b的引用(這個引用指向一個Boolean類型的instance),這個引用的獲取需要經過三元運算符進行邏輯判斷,判斷過程如下:
        當b的值為true時,返回Boolean.True
        當b的值為false時,返回Boolean.False
ps:此處,True是Boolean類中的一個屬性,但是這個屬性本身的類型是類類型,且看其源碼——
  public static final Boolean TRUE = new Boolean(true);
  對應源碼中注釋:

/**
* The <code>Boolean</code> object corresponding to the primitive
* value <code>true</code>.   (翻譯:布爾對象對應於原始值true)
*/


 

總結:三元運算符中的置於"?"前方的條件表達式(java中常稱作關系表達式)准確的說是布爾表達式,形式多種多樣,只要計算的結果是一個布爾量即可


 

補充下條件表達式資料:

條件表達式:條件表達式由條件運算符構成,並常用條件表達式構成一個賦值語句。條件運算符優先級高於賦值逗號運算符,低於其他運算符

        口訣:前真后假

        性質:右結合性          

          若有多個條件表達式像這樣連在一起:x=<表達式1>?<表達式2>:<表達式3>?<表達式4>:<表達式5>···執行順序是從右到左依次判斷再求出最后的x,即所謂的右結合性。
          例如: a=1,b=2,c=3,d=4,則條件表達式a<b?a:c<d?c:d的值為:1

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM