Иллюстрированный самоучитель по Java
Логические
операции
Логические операции:
-
отрицание (NOT)
!
(обозначается восклицательным знаком);
-
конъюнкция (AND)
&
(амперсанд);
-
дизъюнкция (OR)
|
(вертикальная черта);
-
исключающее ИЛИ (XOR)
^
(каре).
Они выполняются над логическими
данными, их результатом будет тоже логическое значение
true
или
false
. Про них можно ничего не знать, кроме того,
что представлено в табл. 1.1.
Таблица 1.1.
Логические
операции
Словами эти правила можно выразить
так:
-
отрицание меняет значение истинности;
-
конъюнкция истинна, только если
оба операнда истинны;
-
дизъюнкция ложна, только если
оба операнда ложны;
-
исключающее ИЛИ истинно, только
если значения операндов различны.
Замечание
Если бы Шекспир был программистом,
фразу "То be or not to be" он написал бы так:
2b
| ! 2b.
Кроме перечисленных четырех логических
операций есть еще две логические операции сокращенного вычисления:
-
сокращенная конъюнкция (conditional-AND)
&&
;
-
сокращенная дизъюнкция (conditional-OR)
||
.
Удвоенные знаки амперсанда и вертикальной
черты следует записывать без пробелов.
Правый операнд сокращенных операций
вычисляется только в том случае, если от него зависит результат операции, т.
е. если левый операнд конъюнкции имеет значение
true
,
или левый операнд дизъюнкции имеет значение
false
.
Это правило очень удобно и ловко
используется, например, можно записывать выражения
(n != 0) &&
(m/n > 0.001)
или
(n == 0) || (m/n > 0.001)
не опасаясь деления на нуль.
Замечание
Практически всегда в Java используются
именно сокращенные логические операции.