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
4
Задача
Модуль 1. Java Syntax,  6 рівень0 лекція
Недоступна
Я ніколи не працюватиму за дрібняки
Використовуючи цикл while, вивести на екран сто разів цитату (змінна quote): «Я ніколи не працюватиму за дрібняки. Аміго» Кожне значення вивести з нового рядка.
4
Задача
Модуль 1. Java Syntax,  6 рівень0 лекція
Недоступна
Усі люблять Мамбу
Ввести з клавіатури ім'я та, використовуючи цикл while, 10 разів вивести: <ім'я> любить мене (змінна text). Кожного разу виводити текст з нового рядка.Приклад виведення на екран для імені Ганнуся: Ганнуся любить мене. Ганнуся любить мене. Ганнуся любить мене. Ганнуся любить мене. Ганнуся любит
6
Задача
Модуль 1. Java Syntax,  6 рівень0 лекція
Недоступна
Підсумовування
Напишемо програму, в якій потрібно вводити з клавіатури цілі числа й рахувати їх суму, доки користувач не введе слово "ENTER". Вивести на екран отриману суму й завершити програму.