[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 721

 
Abzasc:

Il ne s'agit pas de multiplier les variables, les conditions et les compteurs.




il s'agit alors d'écrire correctement, et non d'utiliser des abréviations linguistiques :

int a;
for(a=0;a<8;a++){
//здесь что то делаем
}
for(a=0;a<8;a++){
//делаем что нибудь другое
}
 
Abzasc:

Le but n'est pas de créer des variables, beaucoup de conditions et de compteurs.

Eh bien, s'il vous plaît, le compilateur vous permet de faire de telles choses...

//+------------------------------------------------------------------+
int start()
  {
  bool flag;
  
   if(flag){
      for(int a = 0; a < 10;a++){
         Print("a = ", a);
      }
   }else{
      for(a = 10; a > 0;a--){
         Print("a = ", a);
      }
   }
  }
//+------------------------------------------------------------------+
Le flag par défaut est False, donc la première boucle for dans laquelle la variable a est déclarée ne sera pas exécutée, ce qui n'empêche pas la même variable "non déclarée" d'être utilisée dans la branche else : )
 
Abzasc:

La condition si

ici nous faisons quelque chose

sinon si une autre condition

faire autre chose

Le but n'est pas de créer des variables, beaucoup de conditions et de compteurs.

Cela ne vous oblige pas à réinitialiser la variable. Faites tout selon ce que vous avez écrit et votre variable a sera utilisée aux bons endroits dans vos branches logiques sans réinitialisation. Déclarez-le une fois et utilisez-le pour votre bénéfice et celui de l'humanité... :) L'essentiel est de ne pas se perdre dans l'endroit et l'usage que l'on en fait...
 
ToLik_SRGV:

ainsi la première boucle for dans laquelle la variable a est déclarée ne sera pas exécutée

La boucle doit toujours être exécutée.
 
IgorM:


l'intérêt d'écrire correctement alors, plutôt que d'utiliser des abréviations de langage :

Tout le problème était le manque de {}, n'est-ce pas ? Merci !
 
artmedia70:
Cela ne vous oblige pas à réinitialiser la variable. Faites tout selon ce que vous avez écrit et votre variable a sera utilisée aux bons endroits dans vos branches logiques sans réinitialisation. Déclarez-le une fois et utilisez-le pour votre bénéfice et celui de l'humanité... :) L'essentiel est de ne pas se perdre dans l'endroit et l'usage que l'on en fait...
Je l'ai fait, sur 715 pp, 18.07.2010 14:56, sans mettre de parenthèses après le compteur...
 

L'"effet" montré ci-dessus prouve que la machine MQL cherche d'abord dans le fichier EX4 les variables déclarées, et les crée indépendamment des branches logiques en entier. D'une part, il s'avère que cela ne permet pas d'économiser de la RAM, et d'autre part, vous pouvez créer des constructions similaires, bien qu'à mon avis ce style ne soit pas la meilleure option.

 
Abzasc:
Tout le problème résidait dans l'absence de {}, n'est-ce pas ? Merci beaucoup !


Le problème se situait au niveau de la déclaration de la variable :

int a;

Je la déclare et l'utilise ensuite quand et où cela est nécessaire, alors que vous avez une déclaration répétée d'une variable - il est probable que le compilateur ne l'a pas ignorée.

Si vous n'avez qu'une seule déclaration dans la boucle, alors vous n'avez pas besoin de {}, mais si vous en avez plusieurs, vous devez mettre {}, sinon vous chercherez pourquoi la boucle n'est pas calculée correctement

SZZY : Si vous venez de commencer, mettez des parenthèses après for, vous aurez le coup de main plus tard.

 
ToLik_SRGV:

Le code d'IgorM ne donne aucune erreur. Je ne pense pas qu'une mémoire sera allouée en fonction du nombre de mentions dans les branches, donc c'est OK.
 
Abzasc:
La boucle doit toujours être exécutée.

Qu'est-ce que la boucle a à voir avec ça ? C'est juste un exemple qui montre qu'une variable créée dans un bloc qui n'est pas utilisé est toujours en "jeu" et sera visible et utilisable tout au long de la méthode start(), sans qu'il soit nécessaire de la réinitialiser, et encore moins de la désinitialiser avant de la réutiliser.

Raison: