Для каждой группы операций в таблице приоритет одинаков. Чем выше приоритет группы операций, тем выше она расположена в таблице. Порядок выполнения определяет группировку операций и операндов.
() Вызов функции Слева направо [] Выделение элемента массива
! Логическое отрицание Справа налево - Изменение знака ++ Увеличение на единицу (increment) -- Уменьшение на единицу (decrement) ~ Побитовое отрицание (complement)
& Побитовая операция И Слева направо | Побитовая операция ИЛИ ^ Побитовая операция исключающее ИЛИ (eXclude OR) << Сдвиг влево >> Сдвиг вправо
* Умножение Слева направо / Деление % Деление по модулю
+ Сложение Слева направо - Вычитание
< Меньше, чем Слева направо <= Меньше или равно > Больше, чем >= Больше или равно == Равно != Не равно
|| Логическая операция ИЛИ Слева направо
&& Логическая операция И Слева направо
= Присваивание Справа налево += Сложение с присваиванием -= Вычитание с присваиванием *= Умножение с присваиванием /= Деление с присваиванием %= Деление по модулю с присваиванием >>= Сдвиг вправо с присваиванием <<= Сдвиг влево с присваиванием &= Побитовое И с присваиванием |= Побитовое ИЛИ с присваиванием ^= Исключающее ИЛИ с присваиванием
, Запятая Слева направо
Для изменения порядка выполнения операций применяются круглые скобки, которые имеют высший приоритет.
Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си.
Век живи - век учись. Всегда считал, что сначала выполняется И, а протом ИЛИ. И при таком понимании все программы работали нормально. Даже очень сложные логические комбинации.
а тут...
Нет, форумы лучше не читать. Запутают все.
Программы работали нормально.... теперь будут глючить... :))))))))
... а тут... просто ставьте скобки,ставьте скобки,ставьте скобки, господа! И никаких проблем. Да и программа понятней будет. Никто и никогда не обещал соответствия MQL4 = C++/
Есть стандарт, его и необходимо придерживаться. А если разработчики производят на свет свой стандарт, противоречащий общепринятому, то... грязь это... мусор.
Смотрим в документации Приоритеты и порядок выполнения операций:
Для каждой группы операций в таблице приоритет одинаков. Чем выше приоритет группы операций, тем выше она расположена в таблице. Порядок выполнения определяет группировку операций и операндов.
Для изменения порядка выполнения операций применяются круглые скобки, которые имеют высший приоритет.
Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си.
Поэтому все верно
ЛОЛ
Скомпилируйте в C из запустите если Вам лень проверять.
В компиляторе сто процентов ГЛЮК.
О, НЕБЕСА!
А ГЛЮК ТО В С, А МЫ ТО ДУМАЛИ.... ОТКУДА КРИЗИС НА ПЛАНЕТЕ.
Век живи - век учись. Всегда считал, что сначала выполняется И, а протом ИЛИ. И при таком понимании все программы работали нормально. Даже очень сложные логические комбинации.
а тут...
Нет, форумы лучше не читать. Запутают все.
Программы работали нормально.... теперь будут глючить... :))))))))
Вовсе нет ! Приоритет здесь у "или"(||), - однозначно !
Если скобок нет, то сначала будет выполнено ||, а потом уж &&
Поэтому скобки нужно обяз. ставить в соотв. местах
однако...
жестьпроверил первый пост в маткаде. Ответ 1 0 1 1
Вот код
Честно говоря, никогда не заучивал приоритет логических и битовых операций. В силу врожденной лени просто ставил скобки в нужных местах.
"Есть многое, друг Гораций...."