2012-09-05 61 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){ 
... 
} 

方便快捷。