在java中这样做可以吗,它有效吗?
if (turtles.get(h).getX() == turtles.get(g).getX() == 450) {
//stuff here
}
基本上,我想检查 X 是否与 Y 相同,并且该值应为 450。
在java中这样做可以吗,它有效吗?
if (turtles.get(h).getX() == turtles.get(g).getX() == 450) {
//stuff here
}
基本上,我想检查 X 是否与 Y 相同,并且该值应为 450。
不,你希望那里发生什么?
"a == b" 计算为布尔值,因此 "int == (int == int)" 将计算为 "int == boolean",并且您不能比较 int 和布尔值。
此外,你在这里试图做什么样的逻辑?if ((a == b) && (b == c))
?
不,这不对。这是因为结果a == b
是布尔值。如果你这样做a == b == c
,你首先比较a == b
which 将返回true
orfalse
然后将该真值与c
.
不是你想做的,通常!
请注意,这个技巧可以用于赋值,因为结果a = b
是b
(的新值a
),这意味着a = b = c
甚至(a = b) == c
偶尔会派上用场。
不。它与 (turtles.get(h).getX() == turtles.get(g).getX()) == 450 -“无与伦比的类型”相同。if(turtles.get(h).getX() == 450 && turtles.get(g).getX() == 450)
.
或者使用辅助方法避免所有可读性较差(且容易出错)的重复......
public boolean areEqual( int a, int b, int c )
{
return ( a == b ) && ( b == c ) ;
}
那是行不通的,因为==
运算符是二进制的。
即使它按顺序工作,第一个集合也会返回一个布尔值,它不会对后面的整数起作用。
不,它不会起作用,正如其他帖子中所解释的那样。但你可以做
if (turtles.get(h).getX() - turtles.get(g).getX() + 450 == 0)