在if语句中使用==运算符两次

Jak*_*ake -1 java if-statement equality-operator

在java中这样做是否可以,是否有效?

if (turtles.get(h).getX() == turtles.get(g).getX() == 450) { 
    //stuff here
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想检查X是否与Y相同,该值应为450.

Ebo*_*ike 5

不,你期望在那里发生什么?

"a == b"计算为布尔值,因此"int ==(int == int)"将计算为"int == boolean",并且您无法比较和int和布尔值.

此外,你想在这里做什么样的逻辑?if ((a == b) && (b == c))


Ste*_*ker 5

不,这不对。这是因为 的结果a == b是布尔值。如果这样做,a == b == c您首先会比较a == b哪个将返回truefalse,然后将该真值与c

通常不是您想做的事!

请注意,这个技巧可以用于赋值,因为 的结果a = bb( 的新值a),这意味着a = b = c或 甚至(a = b) == c偶尔有用。

  • @Lie:在发表评论之前尝试/研究一下。它工作得很好,并且经常用于 I/O 习惯用法,例如 `for (String line = null; (line = reader.readLine()) != null; ) { //...` (2认同)