Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я не путаю, я вам рассказываю как на практике это работает - && выполняется самой первой!!!
PS
Cейчас проверил (4 && 1) = 1 значит все таки не побитово. Все немного сложнее (4>0) && (1>0) = 1 && 1 = 1
Непонятно, почему у логического ИЛИ приоритет выше, чем у И???
То есть разработчики считают, что вначале выполняется действие сложение, а потом умножение? :)
Опровергается вся теория булевой алгебры... да и вообще математики.
Разработчики, почему так???
МТ4 билд 208
Нда не получается. Может не приоритет или выше, может просто обратный порядок, или какие-то глюки с преобразованием типов?
Хотя False && True || True && True тоже дают 0.
Пару раз натыкался и в старых билдах на непонятки с приоритетом в выражениях типа a > b && b < c, но вникать не стал, просто теперь всегда ставлю скобки.
Что показало исследование:
0 && 1 || 1 && 1 = 0
1 && 0 || 1 && 1 = 1
1 && 1 || 0 && 1 = 1
1 && 1 || 1 && 0 = 0
Похоже все таки приоритет нарушается.
Что показало исследование:
0 && 1 || 1 && 1 = 0
1 && 0 || 1 && 1 = 1
1 && 1 || 0 && 1 = 1
1 && 1 || 1 && 0 = 0
Похоже все таки приоритет нарушается.
"Для изменения порядка выполнения операций применяются круглые скобки, которые имеют высший приоритет."
"Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си."
После первого ложного высказывания дальнейшая проверка прекращается. По моему так.
'Логические выражения вычисляются полностью, т.е., к ним не применяется схема так называемой "короткой оценки".'
Уважаемые разработчики MQL4, исправьте, пожалуйста, эту ошибку, допущенную кем то уже давно, сделав логическую операцию "ИЛИ" выше "И". Как я полагаю, вы с этим смирились, чтобы не сломались ранее написанные советники. Зря вы так думаете, все знающие программисты и математики программировавшие в MQL4 и наткнувшись на такую ошибку лучше поставят скобки, чтобы сделать "И" приоритетнее, чем допустят нарушение общепринятых правил. Поэтому эти советники останутся работающими. Они в недоумении, а некоторые могут посмеяться в некомпетентности разработчиков.
Можно это исправить в MQL5, чтобы новые советники писались по новым правильным правилам.
Хотя может быть вы усмотрели какое то преимущество в этом и пошли на такое нововведение? Тогда поделитесь в чем оно заключается.
Можно это исправить в MQL5, чтобы новые советники писались по новым правильным правилам.
Тогда при переносе кода с mql4 на этой почве будет допущена масса ошибок (наверное)
сам поначалу наступал на эти грабли. потом свыкся.
Слава уже говорил, что в MQL5 приоритеты логических операций реализованы как в С++.
Интересно а зачем вобще нужен mql? почемуб не сделать библиотеку и пусть каждый пишет кому на чем удобно? Гораздо удобней чем писать програму на mql которая использует библиотеку написанную на c++ да еще и глючит, у меня вылетает когда одновременно несколько экспертов шлют котировки в длл.