Логические операторы

Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:

Они могут состоять только из выражений, возвращающих логические значения True, False или Null. В противном случае выполняется побитовое сравнение. Логические операторы всегда требуют двух операндов, за исключением Not — логического эквивалента унарного минуса.

В табл. 4.4—4.6 приведены результаты логических операторов Access в зависимости от значения операндов.

Таблица 4.4. Зависимость значения логических операторов от значения операндов


A=True B=False

A=True B=True

A=False B=False

A=False B=True

A And В

False

True

False

False

A Or В

True

True

False

True

Not A

False

False

True

True

А Хог В

True

False

False

True

A Eqv В

False

True

True

False

A Imp В

False

True

True

True

Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.

Таблица 4.5. Значения оператора Imp с Null-операндами


A=Null B=False

A=Null B=True

A=False B=Null

A=True B=Null

A=Null B=Null

A Imp В

Null

True

True

Null

Null

В случае если сравниваются два выражения и, по крайней мере, одно из них не является константой из множества (True, False, Null), логические операторы приводят к побитовому сравнению выражений-операндов (табл. 4.6).

Таблица 4.6. Значения логических операторов для однобитовых операндов

Значения соответствующего бита результата

битА=1

бит В=0

6итА=1

битВ=1

битА=0

бит В=0

бит А=0

бит В=1

A And В

0

1

0

0

A Or В

1

1

0

1

Not A

0

0

1

1

А Хог В

1

0

0

1

A Eqv В

0

1

1

0

A Imp В

0

1

1

1