1. Булева логика
В языке Java нельзя записать выражение 18 < age < 65 — оно будет синтаксически некорректным и программа не скомпилируется.
Зато можно записать его так:
(18 < age) И (age < 65)
Разумеется, вместо слова И там будет другой логический оператор, и сейчас мы как раз поговорим о них подробнее.
В Java есть три логических оператора: AND (и), OR (или) и NOT (не).
Хорошая новость: используя скобки, можно построить логические выражения любой сложности.
Плохая новость: разработчики Java решили вместо слов and, or и not, использовать обозначения из языка C.
Внимание на экран:
| Логический оператор | Ожидание | Реальность |
|---|---|---|
И (∧) |
and |
&& |
ИЛИ (∨) |
or |
|| |
НЕ (¬) |
not |
! |
Вот несколько примеров использования логических операторов в Java:
| Выражение | Расшифровка | Пояснение |
|---|---|---|
|
|
|
|
|
|
|
|
|
2. Примеры использования операторов сравнения и булевых переменных
Там, где можно написать логическое выражение, можно написать и логическую переменную.
Например:
| Код | Пояснение |
|---|---|
|
Если значение age лежит между 18 и 65, на экран выводится текст «вы можете работать». |
|
Мы создали переменную isYoung и вынесли в нее первую часть выражения. Только заменили age >= 18 на age < 18. |
|
Мы создали переменную isOld и вынесли в нее вторую часть выражения. При этом заменили age <= 65 на age > 65. |
Эти три примера эквивалентны. Только во втором мы вынесли часть выражения из условия if в отдельную логическую переменную – isYoung. В третьем примере мы вынесли вторую часть выражения во вторую переменную — isOld.
3. Логическая арифметика
Вкратце пройдемся по логическим операциям.
Оператор AND, он же И, он же &&, он же конъюнкция.
| Выражение | Результат |
|---|---|
|
|
|
|
|
|
|
|
Другими словами, результат выражения равен true (истина) только если оба значения, которые участвуют в выражении, равны true (истина). В остальных случаях всегда false (ложь).
Оператор OR, он же ИЛИ, он же ||, он же дизъюнкция.
| Выражение | Результат |
|---|---|
|
|
|
|
|
|
|
|
Другими словами, результат выражения равен true (истина) всегда, если хотя бы одно значение, участвующее в выражении, равно true (истина). Если оба равны false, то результат false.
Оператор NOT, он же НЕ, он же !, он же инверсия.
| Выражение | Результат |
|---|---|
|
|
|
|
Меняет true на false и наоборот.
Полезные выражения:
| Выражение | Результат |
|---|---|
|
|
|
|
|
|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ