2011-10-18 228 views
4

這種情況是否可能?比較三個整數值

if(a == b == c) 

或者是

if((a== b) && (b == c)) 

是唯一的出路?

或者最酷的方法是什麼?

回答

6

在某些語言中,您可以使用這種簡寫。例如,在Python中,a == b == c大致相當於表達式a == b and b == c,只是b僅評估一次。

但是,在Java和Javascript中,您的不能使用使用短版本 - 您必須按照第二個示例中的方式編寫它。第一個例子大致相當於以下內容:

boolean temp = (a == b); 
if (temp == c) { 
    // ... 
} 

這不是你想要的。在Java a == b == c甚至不會編譯,除非c是一個布爾值。

1

在java中 - 我們沒有==快捷鍵操作符。所以我們最終要做個人的平等。

但是如果你認爲你需要很多的功能變化參數的數量,我會考慮實現這樣的功能。以下是沒有處理特殊情況的示例代碼。

public static boolean areTheyEqual(int... a) { 
     int VALUE = a[0]; 
     for(int i: a) { 
      if(i!= VALUE) 
       return false; 
     }  
     return true; 
    } 
-3

要獲得最大值出三個數字中,一行的方法:

INT最大=(A> B & & A> C)? a :((b> a & & b> c)?b:c);