3つの同時式を使用したJavaでの「if」評価[重複]質問する

3つの同時式を使用したJavaでの「if」評価[重複]質問する

Java テストで、値を割り当てる必要があるという質問がありabこの式は true と評価されます。

(a<=b && b<=a && a!=b)

残念ながら、その答えが何なのか私には分かりませんでした。

ベストアンサー1

ここに簡単なトリックがあります。

ブール論理だけではこれを完全に考えることはできません。それを使用すると、この組み合わせは...

  • aは以下でありb
  • bは以下でありa
  • a等しくないb

...二度と戻ってこないだろうtrue

ただし、!=オペランドがオブジェクトの場合、演算子は参照を比較します。

したがって、次の結果が返されますtrue

Integer a = 1;
Integer b = new Integer(1);
System.out.println(a<=b && b<=a && a!=b);

ここで何が起こるかというと、aオブジェクト参照はbオブジェクト参照と等しくありませんが、もちろんそれらは等しい整数値を保持します。

おすすめ記事