JavaRush /Курси /JAVA 25 SELF /Логічний тип boolean і логічні операції

Логічний тип boolean і логічні операції

JAVA 25 SELF
Рівень 3 , Лекція 3
Відкрита

1. Логічний тип даних: boolean

Як ми вже переконалися, у Java є дуже корисний оператор — if-else. Він виконує один блок коду, якщо умова в дужках істинна, інакше — інший.

Щоб зручно працювати з виразами, які можуть бути істинними або хибними, у Java існує спеціальний тип — boolean. Його головна особливість полягає в тому, що змінні цього типу можуть набувати лише двох значень: true (істина) і false (хиба).

Жодних інших значень присвоїти змінним типу boolean неможливо. Компілятор цього не дозволить.

Приклади змінних типу boolean:

boolean isAdult = true;
boolean hasMoney = false;
Приклад оголошення змінних типу boolean

У змінної типу boolean лише два значення — true і false. Усе! Майже як у тесті — або «пройшов», або «не пройшов».

2. Операції порівняння

І навіщо ж потрібен такий примітивний тип? Справжня міць boolean виявляється, коли ми будуємо логічні вирази. Зазвичай їх утворюють за допомогою операторів порівняння.

Оператор Призначення Приклад Значення
== Дорівнює
a == b
true або false
!= Не дорівнює
a != b
true або false
> Більше
a > b
true або false
< Менше
a < b
true або false
>= Більше або дорівнює
a >= b
true або false
<= Менше або дорівнює
a <= b
true або false

Приклад:

int age = 20;
boolean isAdult = age >= 18;   // true (20 більше або дорівнює 18)
boolean isTeenager = age >= 13 && age < 18; // false (20 не менше 18)
boolean isEven = age % 2 == 0; // true (20 ділиться на 2 без остачі)

isAdult тут стане true, бо 20 — це справді повнолітній вік.

Важливий момент 1:

Оператори, що складаються з двох символів, розривати не можна.


a < = 10
speed > = max
age = = 18
time ! = 0
Так писати не можна. Оператори мають бути суцільними: <=, >=, ==, !=

Важливий момент 2:

Зверніть увагу: операторів =< і => не існує — є лише <= і >=. Якщо ви напишете a =< 3, ваш код не скомпілюється.

Важливий момент 3:

У Java не можна записати вираз 18 < age < 65. Адже вираз 18 < age має значення true або false. Порівнювати true з числом (65) не можна — це різні типи.

3. Логічні операції

У 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))

4. Таблиці істинності

Коротко розглянемо логічні операції.

Оператор AND

Оператор AND, він же І, він же &&, також називається конʼюнкцією, або логічним множенням.

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

Оператор OR

Оператор OR, він же АБО, він же ||, також називається дизʼюнкцією, або логічним додаванням.

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

Оператор NOT

Оператор NOT, він же НЕ, він же !, також називається інверсією.

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

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

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

5. Приклади логічних операцій: and, or, not

Операція «І», AND, позначається &&

Результат — істина лише тоді, коли обидві умови істинні.

int age = 16;
boolean hasTicket = true;
boolean canAttend = age >= 14 && hasTicket; // true (16 >= 14 і квиток є)

Якщо вам 14 або більше років і у вас є квиток — заходьте.

Операція «АБО», OR, позначається ||

Результат — істина, якщо хоча б одна умова істинна.

boolean isAdmin = false;
boolean isModerator = true;
boolean canEdit = isAdmin || isModerator; // true (можна редагувати, якщо хоча б один із них true)

Якщо ви адміністратор АБО модератор — можете редагувати.

Операція «НЕ», NOT, позначається !

Оператор заперечення перетворює істину на хибу й навпаки.

boolean isWeekend = false;
boolean shouldGoToWork = !isWeekend; // true (якщо не вихідні, працюємо)

Якщо НЕ вихідні — час працювати.

Комбінування: будуйте умови будь‑якої складності

Можна комбінувати довільну кількість логічних операцій (проте не варто перевантажувати умови). Для ясності використовуйте дужки.

Приклад:

int age = 17;
boolean hasTicket = false;
boolean isVip = true;

boolean canGo = (age >= 18 && hasTicket) || isVip; // true, бо isVip = true

Логіка: якщо особа повнолітня й має квиток, або якщо вона VIP, — її допускають. Якщо не VIP — допускають лише за умови повноліття та наявності квитка.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ