Распечатать страницу

Логический тип данных в Microsoft Visual FoxPro

« Назад

Логическая величина может принимать два значения .T. – истина и .F. – ложь. Регистр написания логических констант .T. и .F. произвольный.

Логические величины возвращаются в результате выполнения логических операций, операций отношения, а также некоторыми встроенными функциями. Функция, возвращающая логическую величину, может быть создана и пользователем.

Логические операции и операции отношения выполняются, как и другие операции VFP, слева направо в порядке их приоритета.

Операндами логических операций являются выражения логического типа. Перечень логических операций дан в табл. 3.20.

Таблица 3.20

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

Операция

Описание

Пример

NOT | !

Логическое отрицание

not cVarA = cVarB
! nVar1 = nVar2

AND

Логическое И

lVar1 and lVar2

OR

Логическое ИЛИ

lVar1 or lVar2

В табл. 3.20 логические операции приведены в порядке убывания приоритета: наивысший приоритет имеет операция NOT, наименьший – OR.

Замечание. В качестве исключающего ИЛИ можно применять операцию отношения "#", например:

.T. and 'a' # 'b'

Результат логической операции определяется в соответствии с таблицей истинности (табл. 3.21).

Таблица 3.21

Таблица истинности

Операнды

Операции и их результат

x

y

NOT x

x AND y

x OR y

x # y

.T.

.T.

.F.

.T.

.T.

.F.

.T.

.F.

.F.

.F.

.T.

.T.

.F.

.T.

.T.

.F.

.T.

.T.

.F.

.F.

.T.

.F.

.F.

.F.

Пример:

x = .T.

y = .F.

lResult = x or not y and x # y

? lResult                              && Напечатает: .T.

Порядок выполнения в приведенном примере операций иллюстрируется следующим выражением со скобками:

lResult = ((x # y) and (not y)) or x

На первое место поставлена операция "#", поскольку операции отношения имеют более высокий приоритет, чем логические операции.