Приоритеты выполнения различных операций примитивных типов данных в системе 1С Предприятие 8

Доброго времени суток, уважаемые читатели блога SoftMaker.kz! В прошлый раз мы разобрались с вопросом приоритетов выполнения арифметических операций во встроенном языке 1С:Предприятие 8. Сегодня мы поговорим о о приоритетах различных операций примитивных типов данных. Итак, приступим!

Встроенный язык 1С:Предприятие для начинающих: приоритеты выполнения различных операций примитивных типов данных

Понятно, что одном выражении могут встречаться арифметические операции, операции сравнения и булевы операции. В каком же приоритет они будут выполнятся? Рассмотрим следующий пример.

(20+10)=30+40 или 18%4

В каком порядке будет выполняться это выражение? Во-первых, самый высший приоритет всегда у скобок, поэтому сначала выполнится, что находиться в скобках, а именно операция сложения, поскольку она и находится в скобках. А что произойдет дальше? Может быть выполнится операция сравнение или операция сложения? Ну на самом деле высшим приоритетом обладают операции арифметические. В частности, мы видим, что в выражении есть две арифметические операции: операция сложения и получения остатка от деления:

20+30 и 18%4

Естественно, остаток от деления имеет больший приоритет, поэтому вторым по приоритету выполнится операция получения остатка от деления. Остаток от деления 18 на 4 это 2. Поскольку дальше будет выполняться булева операция ИЛИ, то число 2 будет автоматически преобразовано системой к значению Истина. При преобразовании чисел в булево все числа больше или равные единице преобразуются в значение Истина. Об этом подробно было рассказано в статье о преобразовании примитивных типов данных.

Соответственно, третьим шагом будет выполнена операция сложения. Дальше у нас остались операции сравнения и ИЛИ. Здесь приоритет следующий: все операции сравнения имеют высший приоритет над булевскими операциями. Какие это операции? Это могут быть операции: больше, меньше, больше либо равно, меньше либо равно (>, <, >=, <=). Все они выше, чем любая булева операция.

Поэтому четвертым шагом будет выполнена операция сравнения двух математических выражений, естественно у нас на выходе будет значение Ложь, так как число 30 не равно числу 70. И последним шагом выполнится булева операция ИЛИ и произойдет сравнение со значением Ложь числа 2. Здесь двойка преобразуется в значение Истина. Итак, все выражение будет равно значению Истина. На самом деле всегда результат этого выражения будет равен истине. Почему? Потому что у нас используется операция ИЛИ и происходит сравнение с аргументом, который всегда равный истине. Поэтому результат всего выражения всегда будет равен значению Истина.

Встроенный язык 1С:Предприятие для начинающих: схема приоритетов выполнения различных операций примитивных типов данных

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

ПОДПИСКА