[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 721
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Смысл - не плодить переменные, много условий и счетчиков.
смысл писать тогда правильно, а не пользуясь сокращениями языка:
Смысл - не плодить переменные, много условий и счетчиков.
Ну так пожалуйста, компилятор позволяет делать и такие штуки…
Флаг по умолчанию имеет состояние False, поэтому первый цикл for в котором объявляется переменная а, не будет исполнен, что не мешает использовать эту же "не объявленную" переменную в ветке else :)Условие если
здесь что то делаем
иначе если другое условие
делаем что нибудь другое
Смысл - не плодить переменные, много условий и счетчиков.
поэтому первый цикл for в котором объявляется переменная а, не будет исполнен
смысл писать тогда правильно, а не пользуясь сокращениями языка:
Для этого не требуется переинициализация переменной. Делайте всё в соответствии с тем, что написали и ваша переменная а будет использоваться в нужных местах ваших логических ветвлений без переинициализации. Один раз её объявили и используйте во благо себе и всему человечеству... :) Главное самому не потеряться где и для чего вы её используете...
Выше показанный «эффект», доказывает что MQL-машина сначала просматривает EX4 файл на предмет объявленных переменных, и создает их вне зависимости от логических ветвлений в полном объеме. С одной стороны получается что не экономит ОЗУ, а с другой можно создавать подобные конструкции, хотя на мой взгляд подобный стиль это не лучший вариант.
Вся проблема была в отсутствии {}, что ли? Во спасибо!
вся проблема была в объявлении переменной:
int a;
я ее обьявил и потом использую где надо и когда надо, а у Вас было повторное объявление переменной - скорее всего компилятор и не пропускал
ну, а {} - это объявление блока который будет выполняться за одну итерацию цикла, если у Вас один оператор в цикле, тогда {} не нужно, а если больше тогда обязательно поставьте {} иначе потом будете искать почему не правильно считается цикл
ЗЫ: если только начали заниматься программированием, тогда ставьте пока всегда после for фигурные скобки, потом освоитесь уберете
Цикл должен исполняться всегда.
Причем здесь цикл. Это просто пример, того что переменная создаваемая в заведомо не используемом блоке, все равно в «игре», и будет видна, и пригодна к использованию во всем методе start(), без нужды ее повторной инициализации и уж тем более деинициализации перед повторным использованием.