Перейти к основному содержимому

Логические и булевы операции

Логическое выражение — это выражение, результатом вычисления которого является значение типа Булево. Ниже перечислены операции, которые могут использоваться в логических выражениях.

Операции сравнения

Сравнение на равенство

операнд1 == операнд2

Применяется к значениям любых типов.

Если значение операнд1 равно значению операнд2, то результатом операции является значение Истина.

Сравнение на неравенство

операнд1 != операнд2

Применяется к значениям любых типов.

Если значение операнд1 не равно значению операнд2, то результатом операции является значение Истина.

Сравнение на строгое больше

операнд1 > операнд2

Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.

Если значение операнд1 строго больше операнд2, то результатом операции является значение Истина.

Сравнение на нестрогое больше

операнд1 >= операнд2

Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.

Если значение операнд1 больше или равно операнд2, то результатом операции является значение Истина.

Сравнение на строгое меньше

операнд1 < операнд2

Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.

Если значение операнд1 строго меньше операнд2, то результатом операции является значение Истина.

Сравнение на нестрогое меньше

операнд1 <= операнд2

Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.

Если значение операнд1 меньше или равно операнд2, то результатом операции является значение Истина.

Булевы операции

Результаты логических выражений и значения типа Булево могут участвовать в булевых операциях.

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

выражение1 и выражение2

Возвращает значение Истина, когда результат вычисления каждого выражения равен Истина.

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

выражение1 или выражение2

Возвращает значение Истина, когда результат вычисления хотя бы одного выражения равен Истина.

Логическое «НЕ»

не выражение

Возвращает значение Истина, если результат вычисления выражения равен Ложь.

Унарная операция не представляет собой логическое отрицание, так что не Истина равно Ложь (и наоборот).

Выражение проверки на равенство или неравенство значению типа Булево можно записать двумя способами:

  • полная запись:

    если А == Истина
    если Б == Ложь
  • сокращенная запись:

    если А
    если не Б

Приоритет операций

Логические выражения вычисляются в следующем порядке:

  1. Выражения в круглых скобках.
  2. Операция не.
  3. Операция и.
  4. Операция или.

Используйте скобки для гарантированного порядка вычисления частей выражения.

Для логических выражений поддерживается принцип сокращенного (ленивого) вычисления: вычисление прекращается, если результат уже известен и он не может измениться после вычисления оставшейся части выражения.

Например, рассмотрим логическое выражение вида:

(выражение1) или (выражение2) или (выражение3) 

Если выражение1 равно Истина, то вычислять остальные выражения уже не имеет смысла. Результатом всего выражения будет значение Истина.

Пример

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

метод ЯвляетсяВисокосным(Год: Число): Булево
если ((Год % 4 == 0 и Год % 100 != 0) или (Год % 400 == 0))
возврат Истина
;
возврат Ложь
;

метод ПроверитьГоды()
ЯвляетсяВисокосным(2028) // Истина
ЯвляетсяВисокосным(1900) // Ложь
ЯвляетсяВисокосным(1600) // Истина
ЯвляетсяВисокосным(2025) // Ложь
;