Логические и булевы операции
Логическое выражение — это выражение, результатом вычисления которого является значение типа Булево. Ниже перечислены операции, которые могут использоваться в логических выражениях.
Операции сравнения
Сравнение на равенство
Применяется к значениям любых типов.
Если значение операнд1 равно значению операнд2, то результатом операции является значение Истина.
Сравнение на неравенство
Применяется к значениям любых типов.
Если значение операнд1 не равно значению операнд2, то результатом операции является значение Истина.
Сравнение на строгое больше
Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.
Если значение операнд1 строго больше операнд2, то результатом операции является значение Истина.
Сравнение на нестрогое больше
Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.
Если значение операнд1 больше или равно операнд2, то результатом операции является значение Истина.
Сравнение на строгое меньше
Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.
Если значение операнд1 строго меньше операнд2, то результатом операции является значение Истина.
Сравнение на нестрогое меньше
Применяется только к значениям одинаковых типов, которые имеют базовый тип Сравнимое.
Если значение операнд1 меньше или равно операнд2, то результатом операции является значение Истина.
Булевы операции
Результаты логических выражений и значения типа Булево могут участвовать в булевых операциях.
Логическое «И»
Возвращает значение Истина, когда результат вычисления каждого выражения равен Истина.
Логическое «ИЛИ»
выражение1 или выражение2
Возвращает значение Истина, когда результат вычисления хотя бы одного выражения равен Истина.
Логическое «НЕ»
Возвращает значение Истина, если результат вычисления выражения равен Ложь.
Унарная операция не представляет собой логическое отрицание, так что не Истина равно Ложь (и наоборот).
Выражение проверки на равенство или неравенство значению типа Булево можно записать двумя способами:
-
полная запись:
если А == Истина
если Б == Ложь
-
сокращенная запись:
Приоритет операций
Логические выражения вычисляются в следующем порядке:
- Выражения в круглых скобках.
- Операция
не.
- Операция
и.
- Операция
или.
Используйте скобки для гарантированного порядка вычисления частей выражения.
Для логических выражений поддерживается принцип сокращенного (ленивого) вычисления: вычисление прекращается, если результат уже известен и он не может измениться после вычисления оставшейся части выражения.
Например, рассмотрим логическое выражение вида:
(выражение1) или (выражение2) или (выражение3)
Если выражение1 равно Истина, то вычислять остальные выражения уже не имеет смысла. Результатом всего выражения будет значение Истина.
Пример
В примере ниже логические операции используются, чтобы поверить, является ли год високосным:
метод ЯвляетсяВисокосным(Год: Число): Булево
если ((Год % 4 == 0 и Год % 100 != 0) или (Год % 400 == 0))
возврат Истина
;
возврат Ложь
;
метод ПроверитьГоды()
ЯвляетсяВисокосным(2028)
ЯвляетсяВисокосным(1900)
ЯвляетсяВисокосным(1600)
ЯвляетсяВисокосным(2025)
;