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