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

 
Скрипт.
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 - вроде одна переменная, что не так?

 
Swan:
Скрипт.

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

ни панятна)

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

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

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

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

 
Swan:

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

 

break вроде не должен препятствовать правильному выполнению. Да, вот задачка для разработчиков. Оформляйте этот баг через сервисдеск.
 
Явный баг, обязательно исправим.
 
Swan:

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

какое условие?
 

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

j=j+1

j+=1

++j

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

 
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);
        }
     }
  }


 
Renat:
Явный баг, обязательно исправим.
ok. спасибо.
Причина обращения: