Guide MetaTrader
Conditions langage MQL4

Les instructions conditionnelles permettent d'exécuter une certaine expression ou suite d'expressions selon le résultat d'une condition
Les 3 types d'instructions conditionnelles sont :- if (si)
- if … else (si … sinon)
- switch (aiguillage)
L'instruction if
Cette instruction permet d'exécuter un certain code si une condition est vérifiée. Le code à exécuter sera placé entre des accolades sauf dans le cas d'une expression simple qui dans ce cas peut être laissé sans accolades comme dans les exemples ci-dessous :
if (x == 0) // si x est égal à 0
x = 1 ; // alors on assigne 1 à x
if (x < y) // si x est inférieur à y
{
z = y – x ; // on assigne y-x à z
x = 0 ; // on assigne 0 à x
}
L'instruction if … else
Cette instruction permet d'exécuter un certain code si une condition est vérifiée et un code différent dans le cas contraire. De même façon que pour le if, le code à exécuter sera placé entre des accolades sauf dans le cas d'une expression simple qui dans ce cas peut être laissé sans accolades comme dans les exemples ci-dessous :
if (x == 0) // si x est égal à 0
x = 1 ; // alors on assigne 1 à x
else
x = 2 ; // si x n'est pas égal à 0 on lui assigne la valeur 2
if (x < y) // si x est inférieur à y
{
z = y – x ; // on assigne y-x à z
x = 0 ; // on assigne 0 à x
}
else
{
z = x - y ; // on assigne x-y à z
x = 1 ; // on assigne 1 à x
}
Les instructions if et if … else peuvent être imbriquées autant de fois que nécessaire.
if (x == 0) // si x est égal à 0
{
if (x < y) // si x est inférieur à y
{
z = y – x ; // on assigne y-x à z
x = 0 ; // on assigne 0 à x
}
else
{
z = x - y ; // on assigne x-y à z
x = 1 ; // on assigne 1 à x
}
}
else
x = 2 ; // si x n'est pas égal à 0 on lui assigne la valeur 2
Lorsqu'il y a des instructions imbriquées, pour s'assurer de n'avoir pas oublié d'accolades et de ne pas avoir associé un else au mauvais if, il est conseiller d'indenter le code pour pouvoir repérer les possibles erreurs plus facilement grâce à l'alignement des instructions.
L'instruction switch
Dans le cas d'une décision multi-valeur (par exemple exécuter un code différent pour chaque valeur entre 1 et 10, l'opérateur switch offre une alternative plus élégante et pratique que l'empilement des conditions if … else. L'opérateur switch permet d'aiguiller vers différents codes selon la valeur de la condition. Chaque cas est délimité au début par « case » et se termine par un break. Les cas non spécifiés sont regroupés dans le cas « default ». L'ensemble des cas est placé entre accolades.
La syntaxe générale est la suivante :switch(x)
{
case 1:
Print("x=1"); // si x est égal à 1 alors on affiche x=1
break;
case 2:
Print("x=2"); // si x est égal à 2 alors on affiche x=2
break;
case 3:
case 4:
case 5:
Print("x=3 ou 4 ou 5"); // si x est égal à 3 ou 4 ou 5 alors on affiche x=3 ou 4 ou 5
break;
default:
Print("autres cas"); // si x est différent de 1,2,3,4,5 alors on affiche autres cas
break;
}
La valeur associée à chaque cas doit être soit un entier ou un caractère ou une expression constante telle que 1+1 mais ne doit pas contenir de terme variable : case x+y : est incorrect.
A lire dans le Guide MetaTrader
| MetaTrader : Leçon 1 à 8 |
|---|
|



