Ошибки, баги, вопросы - страница 3129
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В вашем случае это не так поскольку должны быть выполнены оба условия. А вот если поставить такое
то, да. При выполненном условии «а» второе условие проверяться не будет. За это боролись много лет, а вы теперь предлагаете вернуться в прошлый век…Как ни странно, но с a=true не только при ||, но и при && проверка остального не происходит. Иначе как объяснить вот это (смысл в работе индикатора искать не стоит, тут речь именно о коде):
Терминал молчит. Но стоит поменять
на
как появляется пресловутое сообщение 'array out of range', потому как if сразу же натыкается на массив с избыточным индексом, в отличие от первого варианта.
Багом называть не рискну. Поэтому просто скажу, что заметил одну особенность оператора if. Прозреваю, это может относиться и к другим ЯПам.
Если a окажется true, то проверка перейдёт к Array[over_index] и тут-то терминал начнёт дико бомбить по части 'array out of range', что совершенно справедливо. Если же a окажется false, до проверки условия истинности Array[over_index], а значит, и избыточности индекса дело не дойдёт, if проскочит дальше, а кодер так и не узнает, что у него в программе гуляет массив с несуществующим индексом... точнее существующим, но избыточным.
Может, это надо пофиксить, чтобы проверка на предмет 'array out of range' происходила в if до самого конца и выдавалось бы такое же сообщение? Или это сильно уронит скорость работы оператора?
На каком языке отличается синтаксис? "Синтаксис в буквальном переводе означает не только составление, но и упорядочивание..".
Если вы хотите проверить, есть ли 'array out of range' , измените порядок.
if(Array[over_index]>val && a) {...}
На каком языке отличается синтаксис? "Синтаксис в буквальном переводе означает не только составление, но и упорядочивание..".
Если вы хотите проверить, есть ли 'array out of range' , измените порядок.
Порядок желателен по мере необходимости проверок.
К примеру, если "a" изменяется чаще, то её лучше ставить первым аргументом.
Порядок желателен по мере необходимости проверок.
К примеру, если "a" изменяется чаще, то её лучше ставить первым аргументом.
Нет, от первого зависят основные условия, от остальных - просто дополнительные.
Например, неактуально проверять час текущего рабочего времени, если рабочее время еще не началось.Вообще, я случайно наткнулся на эту особенность. А хотел совсем другого...
либо
Тягомотина в том, что n может быть достаточно велико, поэтому эту длинную цепочку условий захотелось завернуть в компактный for. Попробовал так:
но вышла какая-то шляпа. Ну хотя бы потому, что h_plus при таком алгоритме будет вынужден принять всю сумму проверяемых условий, включая условие с проверкой массива с избыточным индексом, до чего дело не доходило в первом развёрнутом if, без for который. Ну и прочие варнинги картину портят.
Стоит ли такое вообще хотеть? Возможно ли такое за-for'ить?
На каком языке отличается синтаксис? "Синтаксис в буквальном переводе означает не только составление, но и упорядочивание..".
Если вы хотите проверить, есть ли 'array out of range' , измените порядок.
Не всегда заранее известно, что ставить впереди, а что после.
Нет, от первого зависят основные условия, от остальных - просто дополнительные.
Например, неактуально проверять час текущего рабочего времени, если рабочее время еще не началось.Да, сначала проверяем условия сигнала, перебираем массив и сравниваем, проверяем текущую цену, а потом оказалось, что время не подходящее, но перед этим выполнено много сложный действий.
Верно?
Да, сначала проверяем условия сигнала, перебираем массив и сравниваем, проверяем текущую цену, а потом оказалось, что время не подходящее, но перед этим выполнено много сложный действий.
Верно?
Проверьте
А кто вам сказал, что «а» из условия выше всегда будет false?
Вообще, я случайно наткнулся на эту особенность. А хотел совсем другого...
либо
Тягомотина в том, что n может быть достаточно велико, поэтому эту длинную цепочку условий захотелось завернуть в компактный for. Попробовал так:
но вышла какая-то шляпа. Ну хотя бы потому, что h_plus при таком алгоритме будет вынужден принять всю сумму проверяемых условий, включая условие с проверкой массива с избыточным индексом, до чего дело не доходило в первом развёрнутом if, без for который. Ну и прочие варнинги картину портят.
Стоит ли такое вообще хотеть? Возможно ли такое за-for'ить?
Вот в этом коде я совершенно ничего не понял
Что означает выделенное & в этом коде? И в каком цикле должно выполняться if(h_plus)? Вы не пропустили кривые скобки?