Книга: Основы программирования на Java
4.4. Булевы логические операторы
4.4. Булевы логические операторы
Булевы логические операторы, перечень которых приведен в таблице 4.5, оперируют только с операндами типа boolean. Все бинарные логические операторы воспринимают в качестве операндов два значения типа boolean и возвращают результат того же типа.
Таблица 4.5. Таблица булевых логических операторов
№ |
Оператор |
Результат |
№ |
Оператор |
Результат |
1 |
& |
логическое И (AND) |
7 |
&= |
И (AND) с присваиванием |
2 |
| |
логическое ИЛИ (OR) |
8 |
= |
ИЛИ (OR) с присваиванием |
3 |
^ |
логическое исключающее ИЛИ (XOR) |
9 |
^= |
исключающее ИЛИ (XOR) с присваиванием |
4 |
|| |
оператор OR быстрой оценки выражений (short circuit OR) |
10 |
== |
равно |
5 |
&& |
оператор AND быстрой оценки выражений (short circuit AND) |
11 |
!= |
не равно |
6 |
! |
логическое унарное отрицание (NOT) |
12 |
? : |
тернарный оператор if-then-else |
Логические булевы операторы AND (И), OR (ИЛИ) и XOR (исключающее ИЛИ) выполняют над логическими величинами те же операции, что и их аналоги из семейства битовой логики. Унарный оператор NOT (НЕ) инвертирует логическое значение. В таблице 4.6 показаны результаты воздействия логических операторов на различные комбинации значений операндов.
Таблица 4.6
A |
В |
OR |
AND |
XOR |
NOT A |
false |
false |
false |
false |
false |
true |
true |
false |
true |
false |
true |
false |
false |
true |
true |
false |
true |
true |
true |
true |
true |
true |
false |
false |
Существуют два дополнения к набору логических операторов. Это альтернативные версии операторов AND и OR, служащие для быстрой оценки логических выражений. Если первый операнд оператора OR имеет значение true, то независимо от значения второго операнда результатом операции будет величина true. Аналогично в случае оператора AND, если первый операнд — false, то значение второго операнда на результат не влияет — он всегда будет равен false. Если вы используете операторы & & и || вместо обычных форм & и |, то Java не производит оценку правого операнда логического выражения, если ответ ясен из значения левого операнда. Общепринятой практикой является использование операторов && и || практически во всех случаях оценки булевых логических выражений. Версии этих операторов & и | применяются только в битовой арифметике.
- 4.1. Арифметические операторы
- 4.1.1. Оператор деления по модулю
- 4.1.2. Арифметические операторы присваивания
- 4.1.3. Инкремент и декремент
- 4.2. Целочисленные битовые операторы
- Таблица 4.2. Операторы битовой арифметики
- 4.3. Операторы отношений
- 4.4. Булевы логические операторы
- 4.5. Тернарный оператор if-then-else
- 4.6. Приоритеты операторов