MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1737

 
Artyom Trishkin # :

Elbette program, terminalin ayrı bir iş parçacığında günlüğe bazı verileri yazmasını beklemez.

teşekkürler, demek istediğim

 
Lütfen söyleyin , for (i; i>0; i--) deyiminde aradan sonra "i--" veya sadece "ifade 3" (belgelere göre) yürütülüyor mu? Ders kitabında bulamadım.

Handikap kontrolünden sonra Print(i);, aradan önce i-- ve eğer (i==0), yani çıkış komutu varsa “-1” neden zaman zaman çöküyor anlamıyorum , i operatörünün içinde zaten 0'a ulaştıysa. i kodun daha da aşağısında kullanıldığından, Close[i]'de aralık dışında bir hata dizisi verir

 
Ivan Butko , for (i; i>0; i--) deyiminde aradan sonra "i--" veya sadece "ifade 3" (belgelere göre) yürütülüyor mu? Ders kitabında bulamadım.

Handikap kontrolünden sonra Print(i);, aradan önce i-- ve eğer (i==0), yani çıkış komutu varsa “-1” neden zaman zaman çöküyor anlamıyorum , i operatörünün içinde zaten 0'a ulaştıysa. i kodun daha da aşağısında kullanıldığından, Close[i]'de aralık dışında bir hata dizisi verir

Hiçbir şey anlamadım. stüdyo kodu
 
Ivan Butko , for (i; i>0; i--) deyiminde aradan sonra "i--" veya sadece "ifade 3" (belgelere göre) yürütülüyor mu? Ders kitabında bulamadım.

Handikap kontrolünden sonra Print(i);, aradan önce i-- ve eğer (i==0), yani çıkış komutu varsa “-1” neden zaman zaman çöküyor anlamıyorum , i operatörünün içinde zaten 0'a ulaştıysa. i kodun daha da aşağısında kullanıldığından, Close[i]'de aralık dışında bir hata dizisi verir

Aradan sonra döngüden çıkış, döngüyü takip eden deyime, devam ettikten sonra yineleme bu yerde biter ve yenisinin başlangıcında.

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

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

// Günlük (-1) şöyle diyor... ve dolayısıyla dizi, Close[-1] olmadığından, aralık dışı hatası veriyor.

Yani, başlıktaki (i; i>0; i--) aradan sonra üçüncü "i--" ifadesinin hala yürütüldüğünü doğru anlıyor muyum?

Документация по 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]);

// Günlük (-1) şöyle diyor... ve dolayısıyla dizi, Close[-1] olmadığından, aralık dışı hatası veriyor.

Yani, başlıktaki (i; i>0; i--) aradan sonra üçüncü "i--" ifadesinin hala yürütüldüğünü doğru anlıyor muyum?

doğru yazıyor

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

Print (i);
Print (Close[i]);
Sadece başlığında değil, aynı zamanda döngünün gövdesinde de uzaklaşıyorsunuz.
 
Konstantin Nikitin # :

doğru yazıyor

Bana kodda ne yazdığımı sormayın. Ben sadece bu operatörün nüanslarını anlamak istiyorum) Görünüşe göre gövdede "buradan ayrılma zamanı geldi, çünkü i=0" dedim ve operatör, kontrolü bir sonrakine aktarması gerekse de ifadeyi tekrar alıp yürütüyor. Şebeke

 
Ivan Butko # :

Ne yazdığımı sormayın. Ben sadece bu operatörün nüanslarını anlamak istiyorum) Görünüşe göre gövdede "buradan ayrılma zamanı geldi, çünkü i=0" dedim ve operatör, kontrolü bir sonrakine aktarması gerekse de ifadeyi tekrar alıp yürütüyor. Şebeke

Evet, belirttiniz, ancak bu çekten önce aldınız. böyle yaz

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

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

farklı bir sonuç olacak

 
Konstantin Nikitin # :

Evet, belirttiniz, ancak bu çekten önce aldınız. böyle yaz


ahh... anladım. Anladım.

Acil cevaplarınız için hepinize teşekkür ederim.

 
Ivan Butko # :

ahh... anladım. Anladım.

Acil cevaplarınız için hepinize teşekkür ederim.

Kodunuz -1 değil 0 yazdırıyor.

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

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

Belki -1 başka bir yerde basılmıştır, büyük olasılıkla tüm kod baskılardadır ..

Bir sorunu çözmeye çalışmadan önce onu belirlemelisiniz.. Var olduğundan emin olun ve yerini lokalize edin ve ancak o zaman çözün..