« Предыдущий пост | На главную страницу | Следующий пост »

Приоритеты операций и порядок выполнения выражений

В прошлых выпусках я рассказал о следующих типах операций в выражении:

Зачастую в выражении можно встретить сразу несколько операций. Возникает вопрос - в какой последовательности эти операции будут выполняться. Это очень важный вопрос, ведь от этого зависит конечный результат, который мы в итоге получим.

Разобьем операции по группам в порядке уменьшения приоритетов.

  • 1-я группа (наивысший приоритет). Вызов функции и доступ к элементу массива (например, a[7]).

  • 2-я группа. Операции с одним операндом:
    • логическое отрицание (!);
    • побитовое отрицание (~);
    • прибавление единицы (++);
    • вычитание единицы (--);
    • изменение знака на противоположный (-).
  • 3-я группа. Побитовые операции:
    • побитовая операция И (&);
    • побитовая операция ИЛИ (|);
    • побитовая операция исключающее ИЛИ (^);
    • побитовый сдвиг вправо (>>);
    • побитовый сдвиг влево (<<).
  • 4-я группа. Ряд арифметических операций:
    • умножение (*);
    • деление (/);
    • получение остатка от деления (%).
  • 5-я группа. Оставшиеся арифметические операции:
    • сложение (+);
    • вычитание (-).
  • 6-я группа. Операции отношения:
    • больше (>);
    • больше или равно (>=);
    • меньше (<);
    • меньше или равно (<=);
    • равно (=);
    • не равно (!=).
  • 7-я группа. Логическая операция И (&&).

  • 8-я группа. Логическая операция ИЛИ (||).

  • 9-я группа. Операция присваивания и объединенные арифметические и побитовые операции с операцией присваивания:
    • операция присваивания (=);
    • сложение с присваиванием (+=);
    • вычитание с присваиванием (-=);
    • умножение с присваиванием (*=);
    • деление с присваиванием (/=);
    • остаток от деления с присваиванием (%=);
    • побитовая операция "И" с присваиванием (&=);
    • побитовая операция "ИЛИ" с присваиванием (|=);
    • побитовая операция исключающее "ИЛИ" с присваиванием (^=);
    • побитовый сдвиг влево с присваиванием (<<=);
    • побитовый сдвиг вправо с присваиванием (>>=).

Сначала выполняются все операции первой группы, потом все операции второй группы и т.д. до девятой группы операций. Если в выражении присутствует несколько операций, принадлежащих одной группе, то они выполняются слева направо. Единственное исключение - операции второй и девятой групп - они выполняются справа налево.

Бывают случаи, когда Вам нужно изменить порядок выполнения операций по умолчанию. В этом случае Вы должны использовать круглые скобки () - они имеют наивысший приоритет.

Пример выражения:

   a = 5 + 6 * 3;     // переменной a будет присвоено значение 23
   a = ( 5 + 6 ) *3; // переменной a будет присвоено значение 33

В следующем выпуске я продолжу анализ кода функции init() нашего первого эксперта и расскажу об условном операторе if-else.



Все статьи по теме "Пишем советников для MetaTrader 4".

« Предыдущий пост | На главную страницу | Следующий пост »

Разместите свой комментарий по теме "Приоритеты операций и порядок выполнения выражений"

Подписаться на мою рассылку



Размещение статьи "Приоритеты операций и порядок выполнения выражений" на Вашем сайте

Размещение статьи "Приоритеты операций и порядок выполнения выражений" на Вашем сайте возможно при условии выполнениия следующих условий:

  • Запрещается изменение оригинального текста без согласия автора - Андрея Ведихина.
  • Должен быть указан первоисточник. В случае публикации в интернете Вы должны разместить следующий код гиперссылки без изменений:
  • Запрещается коммерческое использование материалов, взятых с блога "Интернет-трейдинг на форекс / forex". Доступ к ним должен быть свободным, без взимания какой-либо платы, без обязательной регистрации и/или заполнения опросного листа (анкеты) и т.д.

В случае выполнения данных условий не требуется согласия автора блога "Интернет-трейдинг на форекс / forex" на размещение статьи "Приоритеты операций и порядок выполнения выражений" на Вашем сайте.

Журнал FOREX MAGAZINE:



Архив номеров FOREX MAGAZINE
Котировки Forex:

Счетчики:

Авторские права © 2005-2006 Андрей Ведихин

Условия использования материалов блога "Интернет-трейдинг на форекс / forex"

Контакты с автором:


Движок сайта:
Movable Type 3.31