Флаг по умолчанию имеет состояние False, поэтому первый цикл for в котором объявляется переменная а, не будет исполнен, что не мешает использовать эту же "не объявленную" переменную в ветке else :)
Смысл - не плодить переменные, много условий и счетчиков.
Для этого не требуется переинициализация переменной. Делайте всё в соответствии с тем, что написали и ваша переменная а будет использоваться в нужных местах ваших логических ветвлений без переинициализации. Один раз её объявили и используйте во благо себе и всему человечеству... :) Главное самому не потеряться где и для чего вы её используете...
artmedia70: Для этого не требуется переинициализация переменной. Делайте всё в соответствии с тем, что написали и ваша переменная а будет использоваться в нужных местах ваших логических ветвлений без переинициализации. Один раз её объявили и используйте во благо себе и всему человечеству... :) Главное самому не потеряться где и для чего вы её используете...
Так и делал, на 715 стр., 18.07.2010 14:56, скобки после счетчика не поставил...
Выше показанный «эффект», доказывает что MQL-машина сначала просматривает EX4 файл на предмет объявленных переменных, и создает их вне зависимости от логических ветвлений в полном объеме. С одной стороны получается что не экономит ОЗУ, а с другой можно создавать подобные конструкции, хотя на мой взгляд подобный стиль это не лучший вариант.
я ее обьявил и потом использую где надо и когда надо, а у Вас было повторное объявление переменной - скорее всего компилятор и не пропускал
ну, а {} - это объявление блока который будет выполняться за одну итерацию цикла, если у Вас один оператор в цикле, тогда {} не нужно, а если больше тогда обязательно поставьте {} иначе потом будете искать почему не правильно считается цикл
ЗЫ: если только начали заниматься программированием, тогда ставьте пока всегда после for фигурные скобки, потом освоитесь уберете
Причем здесь цикл. Это просто пример, того что переменная создаваемая в заведомо не используемом блоке, все равно в «игре», и будет видна, и пригодна к использованию во всем методе start(), без нужды ее повторной инициализации и уж тем более деинициализации перед повторным использованием.
Смысл - не плодить переменные, много условий и счетчиков.
смысл писать тогда правильно, а не пользуясь сокращениями языка:
Смысл - не плодить переменные, много условий и счетчиков.
Ну так пожалуйста, компилятор позволяет делать и такие штуки…
Флаг по умолчанию имеет состояние False, поэтому первый цикл for в котором объявляется переменная а, не будет исполнен, что не мешает использовать эту же "не объявленную" переменную в ветке else :)Условие если
здесь что то делаем
иначе если другое условие
делаем что нибудь другое
Смысл - не плодить переменные, много условий и счетчиков.
поэтому первый цикл for в котором объявляется переменная а, не будет исполнен
смысл писать тогда правильно, а не пользуясь сокращениями языка:
Для этого не требуется переинициализация переменной. Делайте всё в соответствии с тем, что написали и ваша переменная а будет использоваться в нужных местах ваших логических ветвлений без переинициализации. Один раз её объявили и используйте во благо себе и всему человечеству... :) Главное самому не потеряться где и для чего вы её используете...
Выше показанный «эффект», доказывает что MQL-машина сначала просматривает EX4 файл на предмет объявленных переменных, и создает их вне зависимости от логических ветвлений в полном объеме. С одной стороны получается что не экономит ОЗУ, а с другой можно создавать подобные конструкции, хотя на мой взгляд подобный стиль это не лучший вариант.
Вся проблема была в отсутствии {}, что ли? Во спасибо!
вся проблема была в объявлении переменной:
int a;я ее обьявил и потом использую где надо и когда надо, а у Вас было повторное объявление переменной - скорее всего компилятор и не пропускал
ну, а {} - это объявление блока который будет выполняться за одну итерацию цикла, если у Вас один оператор в цикле, тогда {} не нужно, а если больше тогда обязательно поставьте {} иначе потом будете искать почему не правильно считается цикл
ЗЫ: если только начали заниматься программированием, тогда ставьте пока всегда после for фигурные скобки, потом освоитесь уберете
Цикл должен исполняться всегда.
Причем здесь цикл. Это просто пример, того что переменная создаваемая в заведомо не используемом блоке, все равно в «игре», и будет видна, и пригодна к использованию во всем методе start(), без нужды ее повторной инициализации и уж тем более деинициализации перед повторным использованием.