Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和If语句_Java_If Statement - Fatal编程技术网

Java和If语句

Java和If语句,java,if-statement,Java,If Statement,有人能告诉我我做错了什么吗 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)

有人能告诉我我做错了什么吗

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

我知道这是第八行,但不知道如何把它弄对。

如果(a==b)(b==c)(c==a)使用

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

注意:如果
a==b
b==c
保持,则无需编写
c==a
,您的“if”语法有问题。 应该是

if (a == b && b == c && c == a) {
//...
}
请注意,这里使用的是基本体,而不是对象。如果您使用的是Integer而不是int,那么==将检查对象是否相同,而不是值是否相同。在这种情况下,您需要使用

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

&&表示逻辑上的and和,说明如下

括号有点错误,需要使用and(&&)运算符

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

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

这并不是说在一行的情况下是绝对必要的,但是您还应该在“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.");
    }
} }
如果
&&
a==b
b==c
都计算为true,则逻辑运算符将告诉“if语句”,如果其中一个或两个都不为true,则该语句将变为false,您直接转到“else语句”

这里使用的是关系的及物性属性。也就是说,如果a=b,b=c,那么a=c。这是我能想到的比较三个整数的最有效的方法

试试这个:

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

快速简单。

看起来第8行是不可见的(就像您的其他代码一样)。使用
if(args[0].equals(args[1])&&args[1].equals(args[2])
可能就是您所需要的。我认为equals是可传递的。@cat Yes,equals()是可传递的(在其java文档中指定)不过很有趣-我在JLS规范中找不到任何关于传递性的信息,所以我觉得有点愚蠢)