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规范中找不到任何关于传递性的信息,所以我觉得有点愚蠢)