Эта оценка "если" на Java с тремя одновременными выражениями У меня был этот вопрос в моем тесте Java, где мне пришлось присваивать значения a и b, чтобы это выражение оценивалось как 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 как ссылка на объект, хотя, конечно, они имеют равные целочисленные значения.
Ответ 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 как ссылка на объект, хотя, конечно, они имеют равные целочисленные значения.