Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1737

 
Artyom Trishkin #:

É claro que o programa não está esperando o terminal em uma linha separada para registrar alguns dados.

Obrigado, quero dizer

 
Por favor me diga, após o intervalo do operador para (i; i>0; i--) a expressão "i--" ou apenas "expressão 3" (de acordo com a documentação) é executada? Não consegui encontrá-lo no livro didático.

Não entendo porque "-1" é jogado de vez em quando se após o intervalo a impressão(i); antes do intervalo há i-- e se (i==0), isto é, o comando de saída se eu já tiver alcançado 0 dentro do operador.

 
Ivan Butko operador para (i; i>0; i--) a expressão "i--" ou apenas "expressão 3" (de acordo com a documentação) é executada? Não consegui encontrá-lo no livro didático.

Não entendo porque "-1" é jogado de vez em quando se após o intervalo a impressão(i); antes do intervalo há i-- e se (i==0), isto é, o comando de saída se eu já tiver alcançado 0 dentro do operador.

Eu não entendo. Mostre-me o código
 
Ivan Butko operador para (i; i>0; i--) a expressão "i--" ou apenas "expressão 3" (de acordo com a documentação) é executada? Não consegui encontrá-lo no livro didático.

Não entendo porque "-1" é jogado de vez em quando se após o intervalo a impressão(i); antes do intervalo há i-- e se (i==0), isto é, o comando de saída se eu já tiver alcançado 0 dentro do operador. Como i é usado ainda mais abaixo no código, em Close[i], o erro é jogado fora do intervalo

Após o intervalo, saia do loop para o próximo operador após o loop, após o loop iterar até o final da iteração naquele ponto e iniciar um novo.

 
Valeriy Yastremskiy for (i; i>0; i--)
{
i--;
if (i==0) break;
}

Print(i);
Print(Close[i]);

// No diário de bordo diz (-1), por que razão... e, portanto, amatriz de errosfora de alcance, porque Close[-1] não acontece.

Quero dizer, estou certo em entender que após a quebra no cabeçalho(i; i>0; i--) a terceira expressão "i--" ainda é executada?

Документация по MQL5: Основы языка / Операторы / Оператор цикла for
Документация по MQL5: Основы языка / Операторы / Оператор цикла for
  • www.mql5.com
Оператор цикла for - Операторы - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ivan Butko for (i; i>0; i--)
{
i--;
if (i==0) break;
}

Print(i);
Print(Close[i]);

// O diário de bordo diz (-1), como assim... e, portanto, amatriz de errosfora do alcance, porque Close[-1] não acontece.

Quero dizer, estou certo em entender que após a quebra no cabeçalho(i; i>0; i--) a terceira expressão "i--" é executada de qualquer maneira?

Escreve corretamente

i=10;
for (i; i>0; i--)
{
i--;
if (i==0) break;
}

Print(i);
Print(Close[i]);
Você tira não só no cabeçalho, mas também no corpo do laço.
 
Konstantin Nikitin #:

Ele escreve corretamente.

Não me pergunte que tipo de porcaria estou escrevendo no meu código. Só quero entender as nuances deste operador) Parece que no corpo eu especifiquei "é hora de sair daqui, porque i=0", mas o operador toma e mais uma vez executa a expressão, embora deva passar o controle para o próximo operador

 
Ivan Butko #:

Não me pergunte que tipo de bobagem estou escrevendo. Eu só quero entender as nuances deste operador) É como no corpo eu especifiquei "é hora de sair daqui, porque i=0", mas o operador toma e mais uma vez executa a expressão, embora deva passar o controle para o próximo operador

Sim, mas você o retirou antes deste cheque. Escreva desta forma

i=10;
for (i; i>0; i--)
{
if (i==0) break;
i--;
}

Print(i);
Print(Close[i]);

haverá um resultado diferente

 
Konstantin Nikitin #:

Sim, mas você o retirou antes deste cheque. Escreva-o assim


aah... já está. Entendi.

Obrigado a todos por suas respostas rápidas.

 
Ivan Butko #:

ahh... Entendi. Entendi.

Obrigado a todos por suas respostas rápidas.

Seu código imprime 0, não -1...

void OnStart()
  {
int i=10;
for (i; i>0; i--)
{
i--;
if (i==0) break;
}

Print(i);
  }
//+------------------------------------------------------------------+

Provavelmente -1 impresso de algum outro lugar, muito provavelmente o código inteiro está nas impressoras.

Antes de tentar resolver o problema, você precisa identificá-lo... Certifique-se de que está lá e localize-o antes de resolvê-lo...

Razão: