我对这段代码感到困惑,我想要一个布尔值,你必须返回'true'或'false'而不是其他的,那么为什么这段代码有用呢?
public static boolean diagonal(Location l, Location l1) {
return l.getX() != l1.getX() && l.getY() != l1.getY();
}
提前致谢。
谢谢所有回答的人。我现在明白了:)
答案 0 :(得分:3)
!=
和&&
运算符评估为boolean
结果。它们各自执行测试并根据测试结果评估布尔值true
或false
(第一个测试不等式,第二个是逻辑AND)。
有关相等运算符及其评估结果的描述,请参阅JLS 15.21。特别是:
等式表达式的类型始终为
boolean
。
有关条件AND运算符及其求值结果的说明,请参阅JLS 15.23。特别是:
条件和表达式的类型始终为
boolean
。
也试试这个:
System.out.println(5 != 5);
System.out.println(5 != 6);
System.out.println(true && false);
System.out.println(true && true);
答案 1 :(得分:1)
这将返回boolean
。如果l.getX()
“不等于”l1.get(X)
“且”l.getY()
“不等于”l1.get(y)
,则“返回true”否则“返回false”。
!=
和&&
是二元运算符,每个都返回boolean
。
答案 2 :(得分:0)
,因为
return l.getX() != l1.getX() && l.getY() != l1.getY();
是一个布尔表达式,return语句将执行结果
如果您表达订单
,则相同return ((l.getX() != l1.getX()) && (l.getY() != l1.getY()));
true或false取决于评估结果,最后返回一个布尔值,因为只执行布尔运算。
boolean a = l.getX() != l1.getX();
boolean b = l.getY() != l1.getY();
boolean c = a && b;
return c;
答案 3 :(得分:0)
它返回真或假。
l.getX() != l1.getX() && l.getY() != l1.getY();
是一个判断1.get(X)是否不等于l1.getX()AND 1.get(Y)不等于l1.getY()的语句。