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