Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну вот еще. Прямотаки все ломанулись :) И не стыдно ? А где уважение ко времени форумян :) ?
int i - это объявление переменной i, 3 раза объявить одну переменную неудастся и это правильно.
Проблема описываемая раньше была другая - скобки {} не ограничивают область видимости переменной (как это есть в Си).
Т.е. если написать так:
То в зависимости от значения а при работе скрипта может возникнуть ошибка, а может и не возникнуть.
(я правда конкретно этот вариант не проверял, смотрел похожий)
В Си компилятор этого недопустит,
обругает что переменная b неописана (и это правильно)
Да тут можно и по коду догадаться, я же фактически уже все рассказал. :)
Если я поставлю во все три цикла один и тот же счетчик (допусти i), то компилятор выругатеся на попытку повторного объявления переменной i. Которую я даже не объявлял явно.
во-первых, скажите, что пробовать и что получить?
во-вторых, как это в явном виде не объявляются? int i=0;... int k=0;... int l=0;... - это что? явное объявление с инициализацией.
и почему нельзя обойтись одним счётчиком i? посмотрите наш пример индикатора OsMA - три цикла на одном счётчике i
int i - это объявление переменной i, 3 раза объявить одну переменную неудастся и это правильно.
Проблема описываемая раньше была другая - скобки {} не ограничивают область видимости переменной (как это есть в Си).
Т.е. если написать так:
То в зависимости от значения а при работе скрипта может возникнуть ошибка, а может и не возникнуть.
(я правда конкретно этот вариант не проверял, смотрел похожий)
Насколько я помню, твой способ, Mak, не помог. Поэтому пришлось делать три счетчика - по одному на каждый цикл.
Вопрос какова область действия этого объявления.
(как оно в данном случае будет в Си уже не помню)
как не явно ? Явно :)
Только в MQL4 насколько я понял обьявленная переменная в процедуре 'видна' до конца этой процедуры.
Попробуйте так:
for(int i=0; i<limit; i++) ...
for(i=0; i<limit; i++)...
for(i=0; i<limit; i++)...
по идее должно сработать.
В таком виде компилятор ругается два раза. Надеюсь, получу благодарности, а не упреки в некомпетентности. :)))
Убери из этих строк int, и ругаться перестанет.
Убери из этих строк int, и ругаться перестанет.
Елки палки, я при копировании не заметил эти int. прошу прощения. :(