0

谁能告诉我我做错了什么?

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编程
我正在尝试创建一个包含三个整数的程序,如果全部相等则打印相等,如果不相等则打印不相等。

我知道它是第 8 行,但不知道如何正确。

4

6 回答 6

10

而不是if (a==b)(b==c)(c==a)使用

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

注意不需要写c==aifa==bb==chold

于 2012-09-05T14:29:58.623 回答
0

你的“if”语法有问题。它应该是

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

请注意,您在这里使用的是原语而不是对象。如果您使用 Integer 而不是 int 那么 == 将检查对象是否相同,而不是值是否相同。在这种情况下,您需要使用

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

&& 表示逻辑和,在这里解释

于 2012-09-05T14:30:29.517 回答
0

您的括号有点错误,您需要使用 AND (&&) 运算符。

于 2012-09-05T14:30:34.827 回答
0

尝试这个:

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

快捷方便。

于 2012-09-05T15:12:00.057 回答
0

您需要&&在括号之间使用()

(a==b) && (b==c) && (c==a)
于 2012-09-05T14:33:18.577 回答
0

并不是说在单行情况下它是绝对必要的,但是您还应该在“if”和“else”语句周围加上括号。不使用它们是不好的做法,因为它会导致一些意想不到的行为。我个人知道我过去曾因这个问题而被烧毁。此外,它使您的代码更易于阅读,这是非常宝贵的。

我的代码如下:

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==bAND都b==c评估为真,如果一个或两个都不为真,则该语句为假,您直接转到“else 语句”。

这里使用的是关系的传递性。这表示如果 a = b 且 b = c,那么它遵循 a = c。这是我能想到的比较三个整数的最有效方法。

于 2012-09-05T15:02:51.457 回答