Воистину поразительный результат!!! - страница 2

 

Смотрим в документации Приоритеты и порядок выполнения операций:

Для каждой группы операций в таблице приоритет одинаков. Чем выше приоритет группы операций, тем выше она расположена в таблице. Порядок выполнения определяет группировку операций и операндов.

()     Вызов функции                            Слева направо
[] Выделение элемента массива
!      Логическое отрицание                     Справа налево
- Изменение знака
++ Увеличение на единицу (increment)
-- Уменьшение на единицу (decrement)
~ Побитовое отрицание (complement)
&      Побитовая операция И                     Слева направо
| Побитовая операция ИЛИ
^ Побитовая операция исключающее ИЛИ (eXclude OR)
<< Сдвиг влево
>> Сдвиг вправо
*      Умножение                                Слева направо
/ Деление
% Деление по модулю
+      Сложение                                 Слева направо
- Вычитание
<      Меньше, чем                              Слева направо
<= Меньше или равно
> Больше, чем
>= Больше или равно
== Равно
!= Не равно
||     Логическая операция ИЛИ                  Слева направо
&&     Логическая операция И                    Слева направо
=      Присваивание                             Справа налево
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Деление по модулю с присваиванием
>>= Сдвиг вправо с присваиванием
<<= Сдвиг влево с присваиванием
&= Побитовое И с присваиванием
|= Побитовое ИЛИ с присваиванием
^= Исключающее ИЛИ с присваиванием
,      Запятая                                  Слева направо

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


Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си.


Поэтому все верно


 

ЛОЛ 


Скомпилируйте в C из запустите если Вам лень проверять.


В компиляторе сто процентов ГЛЮК.

 

О, НЕБЕСА! 

А ГЛЮК ТО В С, А МЫ ТО ДУМАЛИ.... ОТКУДА КРИЗИС НА ПЛАНЕТЕ.

 

Век живи - век учись. Всегда считал, что сначала выполняется И, а протом ИЛИ. И при таком понимании все программы работали нормально. Даже очень сложные логические комбинации.

а тут...

Нет, форумы лучше не читать. Запутают все.

Программы работали нормально.... теперь будут глючить... :))))))))

 
Rosh, ничего себе верно... ни в математике, ни в других языках такого нет, а в MQL4 это верно? Тогда это глюк в мозгах разработчиков:) Уж простите...
 
rid >>:

Вовсе нет ! Приоритет здесь у "или"(||), - однозначно !

Если скобок нет, то сначала будет выполнено ||, а потом уж &&

Поэтому скобки нужно обяз. ставить в соотв. местах


однако...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print(res);               // 1 !
жесть
 
... а тут... просто ставьте скобки,ставьте скобки,ставьте скобки, господа! И никаких проблем. Да и программа понятней будет. Никто и никогда не обещал соответствия MQL4 = C++/
 
Есть стандарт, его и необходимо придерживаться. А если разработчики производят на свет свой стандарт, противоречащий общепринятому, то... грязь это... мусор.
 

проверил первый пост в маткаде. Ответ 1 0 1 1

Вот код

 

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

"Есть многое, друг Гораций...."

Причина обращения: