Помогите с Циклами.

 

Здравствуйе уважаеме форумчане. Вопрос ламерский, но у меня не получается сделать цикл в цикле. То есть пишу цикл for с условием пока переменная меньше 60 с приращением на 1. и хочу что бы на каждом шаге запускался новый такой же цикл. Раньше работало, сейчас не работает. переменная i меняется с каждым изменением переменной а. Где то туплю. 

   for(int i=1; i<=60; i++)
     {
      for(int a=1; a<=60; a++)
        {
            Print(i,"-i");
            Print(a,"-a");
        }
     }
Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Print - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaliy Belomestnov:

Здравствуйе уважаеме форумчане. Вопрос ламерский, но у меня не получается сделать цикл в цикле. То есть пишу цикл for с условием пока переменная меньше 60 с приращением на 1. и хочу что бы на каждом шаге запускался новый такой же цикл. Раньше работало, сейчас не работает. переменная i меняется с каждым изменением переменной а. Где то туплю. 


Если это полный текст цикла, то ошибок в нём нет.

PS. Но тут где-то народ описывал проблему с итератором i. Решение было в замене на другой итератор.

 
Vitaliy Belomestnov:

Здравствуйе уважаеме форумчане. Вопрос ламерский, но у меня не получается сделать цикл в цикле. То есть пишу цикл for с условием пока переменная меньше 60 с приращением на 1. и хочу что бы на каждом шаге запускался новый такой же цикл. Раньше работало, сейчас не работает. переменная i меняется с каждым изменением переменной а. Где то туплю. 

Проблем нет, всё верно

  for(int i=1; i<=60; i++)

     {
      for(int a=1; a<=60; a++)
        {
            Print("i=",i," : a=",a);
        }
     }


 
Косяки? Глюки? Как такое возможно?
Косяки? Глюки? Как такое возможно?
  • 2021.06.07
  • www.mql5.com
Добрый день. Написал эксперт, отладка на исторических данных гоняет как надо...
 
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=1
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=2
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=3
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=4
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=5
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=1  a=6
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=2  a=1
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=2  a=2
2021.07.06 12:46:57.906 -С-Проба (EURUSD,M1) i=2  a=3
//+-------------------------------------------------------+
//| Проба                                       PROBA.mq5 |
//+-------------------------------------------------------+
void OnStart()
{
  for(int i=1; i<=6; i++)
  for(int a=1; a<=6; a++)
  {
     Print("i=", i, "  a=",a);
  }
}


 

Спасибо за ответы господа. Ошибка была в дальнейшем коде. У меня глюк по алгоритму, оказался. Алгоритм срвнивает хаи с индексом i с  хаями из вторго цикла с индексами а. при условии когда "а" и "i" имели одинаковые значения. А в журнал записывалось сообщение с одинаковыми индексами i и а. Я ошибочно подумал, что инкреминтация первого цикла происходи совместно с инкреминтацией второго цикла. Начал потом убирать куски кода и нашел глюк. 

Спасибо, что откликнулись еще раз!