Подтвердить что ты не робот

Эта оценка "если" на Java с тремя одновременными выражениями

У меня был этот вопрос в моем тесте Java, где мне пришлось присваивать значения a и b, чтобы это выражение оценивалось как true:

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

К сожалению, я понятия не имел, что такое ответ.

4b9b3361

Ответ 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 как ссылка на объект, хотя, конечно, они имеют равные целочисленные значения.