2013-10-30 88 views
-2

我帶着兩個不同類型的代碼給出了相同的結果。什麼是java中的一元代碼意味着什麼

第一個是

public String gender(int num){ 
    if (num==0){ 
     return "Female"; 
    } else{    
     return "Male"; 
    } 
} 

第二個是

public String gender(int num){ 
    return num == 0 ? "Female" : "Male" ; 
} 

你能告訴我什麼是與這兩個線模式的不同? (當然不是代碼長度。)我的一個朋友告訴我第二個代碼patten被稱爲java中的Unary代碼或類似的東西。我覺得這種方式非常有效。所以我想了解一下。請幫幫我。

+2

實際上沒有區別。唯一的事情是第二個選項是第一個的簡短形式,它是由三元運算符 –

回答

5

其所謂ternary操作

return num == 0 ? "Female" : "Male"; 

意味着相同

​​
+0

+1表示正確的區別 –

+0

我很抱歉我的錯誤和:(很高興有你們..:) – Dilini

+0

更有史以來,如果你會使用三元運算符它會做自動預測 –

2

這是ternary operator和equlas到if-else

result = someCondition ? value1 : value2; 

等狀況基於起來,結果變量變一個值。

這是if else的簡寫形式。

另一個條件運算符是?:,它可以被認爲是if-then-else語句的簡寫。該運算符也稱爲三元運算符,因爲它使用三個操作數。在下面的示例中,應將此運算符理解爲:「如果someCondition爲true,則將value1的值分配給result,否則將value2的值分配給result。」

+0

@suresh是這些三元運算符只用於if else條件,還是我們可以將它們用於其他任何人。 – Dilini

+0

@ user2867987如果你在我的答案中看到引用的文字,它只會替換if-else語句,它可以被認爲是if-then-else語句的簡寫。所以在其他地方你不能。 –

+0

好的。 :)很好,我明白了。 – Dilini

0

聲明

return num == 0 ? "Female" : "Male" ; 
     _________ ^  ^
      ^  |   | 
      |  Return this |__ Return this if expression false 
     Expression if expression 
         true 

它返回表達式的結果 - (NUM == 0 「女性」: 「男性」)

它檢查num是等於0或不。如果是,結果是第一個參數,即「女」,否則第二個參數,即「男」,如果num是非零。

+0

是的,我知道了:) @Ankit是這些三元運營商只用於其他。或者是否有任何條件。 – Dilini

0

Have a look at this Example其所鑄造整數到雙,

有使用條件運算符與使用if語句

使用三元提供了更多更好的可讀性的代碼沒有性能優勢。你正在交易一條線,它簡潔地表達你想要對抗九條有效雜亂的線路。

+0

我明白了。 :)但是最小化no的行並不是那麼好? – Dilini

相關問題