Opérations Booléennes

Négation Logique NON (!)

L'opérande de la négation logique (!) doit être de type arithmétique. Le résultat est TRUE (1) si la valeur de l'opérande est FALSE (0) ; et il est égal à FALSE (0) si l'opérande diffère de FALSE (0).

if(!a) Print("not 'a'");

Opération Logique OU (||)

Opération logique OU (||) des valeurs x et y. La valeur de l'expression est TRUE (1) si la valeur de x ou y est vraie (non null). Sinon - FALSE (0).

if(x<0 || x>=max_bars) Print("en dehors du range");

Opération Logique AND (&&)

Opération logique ET (&&) des valeurs x et y. La valeur de l'expression est TRUE (1) si les valeurs de x et y sont vraies (non null). Sinon - FALSE (0).

Brève Estimation des Opérations Booléennes

Le schéma de la fameuse "brève estimation" est appliqué aux opérations booléennes, c'est à dire que le calcul de l'expression est terminé quand le résultat de l'expression peut être estimé avec précision.

//+------------------------------------------------------------------+
//| Fonction de lancement du programme                               |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- premier exemple d'estimation brève
   if(func_false() && func_true())
     {
      Print("Opération && : Vous ne verrez jamais cette expression");
     }
   else
     {
      Print("Opération && : le résultat de la première expression est faux, la deuxième expression n'a donc pas été calculée");
     }
//--- deuxième exemple d'estimation brève
   if(!func_false() || !func_true())
     {
      Print("Opération || : le résultat de la première expression est vrai, la deuxième expression n'a pas été calculée");
     }
   else
     {
      Print("Opération || : Vous ne verrez jamais cette expression");
     }
  }
//+------------------------------------------------------------------+
//| la fonction retourne toujours false                              |
//+------------------------------------------------------------------+
bool func_false()
  {
   Print("Fonction func_false()");
   return(false);
  }
//+------------------------------------------------------------------+
//| la fonction retourne toujours true                               |
//+------------------------------------------------------------------+
bool func_true()
  {
   Print("Fonction func_true()");
   return(true);
  }

Voir aussi

Règles de Précédence