Поделиться через


Приоритет операторов

Замечание

Группы интересов сообщества теперь переехали из Yammer в Microsoft Viva Engage. Чтобы присоединиться к сообществу Viva Engage и принять участие в последних обсуждениях, заполните форму " Запрос доступа к финансам и операциям Viva Engage Community " и выберите сообщество, к которому вы хотите присоединиться.

В этой статье описывается приоритет оператора.

Порядок вычисления составного выражения имеет важное значение. Если компилятор явно не сообщает компилятору порядок выполнения операций в этом порядке, порядок основан на приоритете оператора. Скобки ( ) можно использовать для явного указания компилятору X++ способа вычисления выражения.

Рассмотрим выражение x + y / 100, которое дает другой результат в зависимости от того, выполняется ли добавление или деление. Так как оператор деления имеет более высокий приоритет, чем оператор сложения, компилятор вычисляет y/100 сначала. Таким образом, x + y / 100 эквивалентен x + (y / 100). Если добавить скобки, чтобы сделать выражение (x + y)/ 100, x + y сначала вычисляется.

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

Порядок приоритета оператора

Операторы в следующей таблице перечислены в порядке приоритета. Чем выше в таблице отображается оператор, тем выше приоритет он имеет. Операторы с более высоким приоритетом оцениваются перед операторами с более низким приоритетом. Приоритет оператора X++ не совпадает с другими языками, например C# и Java.

Операторы в порядке приоритета Синтаксис
унарные операторы - ~ !
умножение, сдвиг, побитовая И, побитовая эксклюзивная ИЛИ * / % DIV << >> & ^
аддитивная, битовая инклюзивная ИЛИ + -
реляционная, равенство < <= == != > >= like as is
логические операторы (AND, OR) && ||
условный ? :

Операторы в той же строке таблицы имеют равный приоритет. Если в выражении существует несколько операторов, выражение вычисляется слева направо, если операторы назначения не используются. Операторы назначения оцениваются справа налево. Например, && (логический И) и || (логический ИЛИ) имеют одинаковый приоритет и оцениваются слева направо. Это означает, что 0 && 0 || 1 == 1и 1 || 0 && 0 == 0