boolean a = true;
boolean b = true;
boolean c = false;
System.out.println(a || b && c); // true
System.out.println(b && c || a); // true
Я только недавно обнаружил здесь то, что мне показалось странным. Почему &&
и ||
находятся на разных уровнях приоритета? Я бы предположил, что они были на одном уровне. Вышесказанное демонстрирует это. оба утверждения верны, даже если оценка слева направо выдаст false для первого и true для второго.
Кто-нибудь знает причину этого?
(Кстати, я бы просто использовал здесь скобки, но это был старый код, который поднял вопрос)