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 == ブール値」に評価され、int とブール値を比較することはできません。
その上、ここでどのようなロジックを実行しようとしていますか? if ((a == b) && (b == c))
?
いいえ、ちがいます。これは、 の結果がa == b
ブール値であるためです。その場合a == b == c
、最初a == b
にどちらが返されるtrue
かfalse
を比較し、次にその真理値を と比較しますc
。
通常、あなたがやりたいことではありません!
の結果が( の新しい値) であるため、このトリックは代入にも有効であることに注意してください。a = b
b
a
a = b = c
(a = b) == c
または、ヘルパーメソッドを使用して、読みにくい(そしてエラーが発生しやすい)繰り返しをすべて回避します...
public boolean areEqual( int a, int b, int c )
{
return ( a == b ) && ( b == c ) ;
}
いいえ。 (turtles.get(h).getX() == turtles.get(g).getX()) == 450 - 「比較できない型」と同じです。if(turtles.get(h).getX() == 450 && turtles.get(g).getX() == 450)
.
==
演算子はバイナリであるため、これは機能しません。
また、連続して機能したとしても、最初のセットはブール値を返しますが、これは後続の整数に対しては機能しません。
いいえ、他の投稿で説明されているように、機能しません。しかし、あなたはできる
if (turtles.get(h).getX() - turtles.get(g).getX() + 450 == 0)