1. Булева логіка

У мові Java не можна записати вираз 18 < age < 65 — він буде синтаксично некоректним і програма не скомпілюється.

Проте можна записати його так:

            (18 < age) і (age < 65)
        

Зрозуміло, що замість слова І там буде інший логічний оператор, і зараз ми саме поговоримо про них детальніше.

В Java є три логічні оператори: AND (і), OR (или) и NOT (не).

Гарна новина: використовуючи дужки, можна побудувати логічні вирази будь-якої складності.

Погана новина: розробники Java вирішили замість слів and, or і not, використовувати позначення з мови мови C.

Увага на екран:

Логічний оператор Очікування Реальність
І (∧) and &&
АБО (∨) or ||
НЕ (¬) not !

Ось кілька прикладів використання логічних операторів в Java:

Вираз Розшифрування Пояснення
(0 < a) && (a < 100)
(0 < a) and (a < 100)
(0 < a) І (a < 100)
(!a) && (!b)
(not a) and (not b)
(НЕ a) І (НЕ b)
!(!a || !b)
not((not a) or (not b))
НЕ((НЕ a) АБО (НЕ b))

2. Приклади використання операторів порівняння та булевих змінних

Там, де можна написати логічний вираз, можна написати і логічну змінну.

Наприклад:

Код Пояснення
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("Ви можете працювати");
Якщо значення age лежить між 18 і 65, на екран виводиться текст «ви можете працювати».
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("Ви можете працювати");
Ми створили змінну isYoung і винесли до неї першу частину виразу. Тільки замінили age >= 18 на age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("Ви можете працювати");
Ми створили змінну isOld і винесли до неї другу частину виразу. Водночас замінили age <= 65 на age > 65.

Ці три приклади еквівалентні. Тільки у другому ми винесли частину виразу з умови if в окрему логічну змінну – isYoung. У третьому прикладі ми винесли другу частину виразу у другу змінну — isOld.


3. Логічна арифметика

Стисло пройдемося логічними операціями.

Оператор AND, він же і, він же &&, він же кон’юнкція.

Вираз Результат
true && true
true
true && false
false
false && true
false
false && false
false

Іншими словами, результат виразу дорівнює true (істина), тільки якщо обидва значення, що беруть участь у виразі, дорівнюють true (істина). У решті випадків завжди false (неправда).

Оператор OR, він же АБО, він же ||, він же диз’юнкція.

Вираз Результат
true || true
true
true || false
true
false || true
true
false || false
false

Іншими словами, результат виразу дорівнює true (істина) завжди, якщо хоча б одне значення, що бере участь у виразі, дорівнює true (істина). Якщо обидва рівні false, то результат false.

Оператор NOT, він же НЕ, він же !, він же інверсія.

Вираз Результат
!true
false
!false
true

Міняє true на false і навпаки.

Корисні вирази:

Вираз Результат
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b