2012-09-05 160 views
0

任何人都可以告訴我,如果我做錯了什麼?Java和If語句

public class Jafntekkijafnt 
{ 
    public static void main(String[] args) 
    { 
     int a = Integer.parseInt(args[0]); 
     int b = Integer.parseInt(args[1]); 
     int c = Integer.parseInt(args[2]); 
     if (a == b) (b == c) (c == a) System.out.println("equal"); 
     else       System.out.println("not equal"); 
    } 
} 

這是java編程
我試圖創建三個整數程序,如果如果他們不是所有人都是平等的,而不是平等的,打印等。

我知道它的第八行,但不知道如何正確。

+0

看起來像第8行是不可見的(就像你的其他代碼一樣)。 – John3136

+2

可能只需使用'if(args [0] .equals(args [1])&& args [1] .equals(args [2]))''。 –

回答

10

代替if (a==b)(b==c)(c==a)使用

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

注意有沒有必要寫c==a如果a==bb==c持有

+2

lol只有這個答案需要傳遞性 –

+0

我認爲等於是傳遞性的。 –

+0

@TheCat是的,equals()是傳遞的(它在它的java doc中指定)有趣 - 雖然在JLS規範中我找不到任何有關'=='傳遞性的東西,所以我感覺有點愚蠢))) –

0

可能是您的「如果」語法問題。 它應該是

if (a == b && b == c && c == a) { 
//... 
} 

請注意,你在這裏使用原語而不是對象。如果您使用Integer而不是int,那麼==會檢查對象是否相同,而不是數值是否相同。在這種情況下,你需要使用

if (a.equals(b) && b.equals(c) && c.equals(a)) { 
//... 
} 

的& &表示邏輯和,並解釋here

0

你已經拿到了括號有點不對,你需要使用AND(& &)運算符。

0

您需要使用括號()之間&&

(a==b) && (b==c) && (c==a) 
0

不在於它是在一個在線的情況下絕對必要的,但你也應該包括在你的「如果」和「其他」聲明括號。不要使用它們是一種不好的做法,因爲它會導致一些不受歡迎的行爲。我個人知道我過去在這個問題上被燒了。此外,它使您的代碼更易於閱讀,這是非常寶貴的。

我的代碼如下:

public class ThreeIntTest { 
public static void main(String[] args) { 
    int a = Integer.parseInt(args[0]); 
    int b = Integer.parseInt(args[1]); 
    int c = Integer.parseInt(args[2]); 
    if ((a == b) && (b == c)) { 
     System.out.println("The three integers are equal."); 
    } else { 
     System.out.println("The three integers are not equal."); 
    } 
} } 

&&邏輯運算符將告訴「if語句」如果兩個a==bb==c評估爲true,如果一方或雙方都不是真的,那麼該語句是由假你直接去看你的'別的聲明'。

這裏使用的是關係的傳遞性質。其中說,如果a = b和b = c,那麼它遵循a = c。這是我能比較三個整數的最有效方法。

0

試試這個:

if(a == b && a == c && b == a && b == c && c == a && c == b){ 
... 
} 

方便快捷。