Выражения

Структура выражений

Выражение - это конструкция, обладающая значением. Составными элементами выражений являются значения, объединённые при помощи операций. Операции можно поделить на группы по общему назначению и приоритету. Всего можно выделить четыре групп приоритетов, обозначенных цифрами от 4 (низший) до 1.


Значения

Классификация операций по группам

Операции упорядочивания

В эту группу попадают операции < <= > >=. Операции упорядочивания обладают четвёртым (низшим) приоритетом и могут упорядочивать числовые значения.

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

В эту группу попадают операции = <>. Операции сравнения обладают четвёртым (низшим) приоритетом и могут сравнивать только числовые значения. Для сравнения булевых величин следует использовать операцию xor, а вещественные значения проверять на равенство или неравенство некорректно из-за накапливающихся в ходе расчётов погрешностей. В таких случаях следует использовать оценку модуля разности - если она меньше некоторого значения, то считать числа равными. Тем не менее, операция сравнения разрешена как для целых, так и для вещественных чисел, хотя в последнем случае её применение вызывает появление предупреждения.

Арифметические операции

В эту группу попадают операции + - * / div mod. Операции сложения обладают третьим приоритетом, остальные операции обладают вторым приоритетом. Операции + и - также могут использоваться, как унарные операции с третьим приоритетом - первая не меняет значения операнда, а вторая изменяет знак операнда на противоположный.

Операции + - * / оперируют с числовыми значениями. Результатом операции / всегда является вещественное значение, а остальные операции возвращают целое значение, если оба операнда целые, а иначе - вещественное значение.

Операции div и mod оперируют с целыми числами и возвращают результат деления нацело и остаток от деления нацело. В обоих случаях результат - целое число.

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

В эту группу попадают операции not and or xor. Операция отрицания обладает первым приоритетом, операция and обладает вторым приоритетом, остальные две операции обладают третьим приоритетом.


Классификация операций по приоритету

ОперацииПриоритет
notвысший
* / div mod andвторой
+ - or xorтретий
= <> < > <= >=четвёртый