Иллюстрированный самоучитель по Java

       

Логические операции


Логические операции:

отрицание (NOT)

!

(обозначается восклицательным знаком); 

конъюнкция (AND)

&

(амперсанд);

дизъюнкция (OR)

|

(вертикальная черта); 

исключающее ИЛИ (XOR)

^

(каре).



Они выполняются над логическими данными, их результатом будет тоже логическое значение

true

или

false

. Про них можно ничего не знать, кроме того, что представлено в табл. 1.1.

Таблица 1.1.

Логические операции

b1

b2

!b1

b1&b2

b1|b2

b1^b2

true

true

false

true

true

false

true

false

false

false

true

true

false

true

true

false

true

true

false

false

true

false

false

false

Словами эти правила можно выразить так: 

отрицание меняет значение истинности; 

конъюнкция истинна, только если оба операнда истинны; 

дизъюнкция ложна, только если оба операнда ложны; 

исключающее ИЛИ истинно, только если значения операндов различны.

Замечание

Если бы Шекспир был программистом, фразу "То 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 используются именно сокращенные логические операции.



Содержание раздела