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
и наоборот.
Полезные выражения:
Выражение | Результат |
---|---|
|
|
|
|
|
|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ