Скачать MetaTrader 5

баг или жара сказывается?)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен торговый робот? Закажи его в сервисе Фриланс!
Aleksey Lebedev
6057
Aleksey Lebedev 2010.07.19 22:03 
Скрипт.
void OnStart()
  {
   int i,ii,j=0;
   for(i=0;i<10;i++)
      {
      Print("i=",i," j=",j);//j временно обнуляется?
      //здесь массиву1 с индексом j присваивается значение. по i
      for(ii=i+1;ii<10;ii++)
         {
         //здесь массиву2 с индексом j, по условию, присваивается значение. по ii
         j++;
         Print("j=",j);//j нормально увеличивается.
         break;
         }
      }
  }

В журнале следующее:

2010.07.19 21:57:06    Test (EURUSD,H1)    i=9, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=9
2010.07.19 21:57:06    Test (EURUSD,H1)    i=8, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=8
2010.07.19 21:57:06    Test (EURUSD,H1)    i=7, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=7
2010.07.19 21:57:06    Test (EURUSD,H1)    i=6, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=6
2010.07.19 21:57:06    Test (EURUSD,H1)    i=5, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=5
2010.07.19 21:57:06    Test (EURUSD,H1)    i=4, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=4
2010.07.19 21:57:06    Test (EURUSD,H1)    i=3, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=3
2010.07.19 21:57:06    Test (EURUSD,H1)    i=2, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=2
2010.07.19 21:57:06    Test (EURUSD,H1)    i=1, j=0
2010.07.19 21:57:06    Test (EURUSD,H1)    j=1
2010.07.19 21:57:06    Test (EURUSD,H1)    i=0, j=0

ни панятна)

j - вроде одна переменная, что не так?

Vladimir
5900
Vladimir 2010.07.19 22:09  
Swan:
Скрипт.

В журнале следующее:

ни панятна)

j - вроде одна переменная, что не так?

Интересно. Вроде должно работать, но не работает. Print действительно обнуляет j.
Andrey Dik
11210
Andrey Dik 2010.07.19 22:19  
зачем там break? уберите его на.. фиг. :)

Aleksey Lebedev
6057
Aleksey Lebedev 2010.07.19 22:21  
gpwr:
Интересно. Вроде должно работать, но не работает. Print действительно обнуляет j.
Без принтов тоже не работает, массив не заполняется.
Aleksey Lebedev
6057
Aleksey Lebedev 2010.07.19 22:22  
joo:
зачем там break? уберите его на.. фиг. :)

break обязателен, выход из второго цикла, как только условие выполнилось

Vladimir
5900
Vladimir 2010.07.19 22:26  
Swan:

break обязателен, выход из второго цикла, как только условие выполнилось

 

break вроде не должен препятствовать правильному выполнению. Да, вот задачка для разработчиков. Оформляйте этот баг через сервисдеск.
MetaQuotes
Админ
24944
Renat Fatkhullin 2010.07.19 22:28  
Явный баг, обязательно исправим.
Andrey Dik
11210
Andrey Dik 2010.07.19 22:29  
Swan:

break обязателен, выход из второго цикла, как только условие выполнилось

какое условие?
Vladimir
5900
Vladimir 2010.07.19 22:29  

Попробуйте заменить j++ на

j=j+1

j+=1

++j

и скажите какой вариант работает правильно. Вроде все они, включая j++, должны работать одинаково.

Andrey Dik
11210
Andrey Dik 2010.07.19 22:35  
gpwr:

Попробуйте заменить j++ на

j=j+1

j+=1

++j

и скажите какой вариант работает правильно. Вроде все они, включая j++, должны работать одинаково.

не в этом дело.

а в этом, надо типа так:

void OnStart()
  {
   int i=0,ii=0,j=0;
   for(int i=0;i<10;i++)
     {
      Print("i=",i," j=",j);

      for(ii=i+1;ii<10;ii++)
        {
         j++;

         if(j<=13)
            break;
         else
            Print("j=",j);
        }
     }
  }


Aleksey Lebedev
6057
Aleksey Lebedev 2010.07.19 22:46  
Renat:
Явный баг, обязательно исправим.
ok. спасибо.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий