Boolean Operations

Negazione Logica NOT (!)

L'operando della negazione logica (!) deve essere di tipo aritmetico. Il risultato è TRUE (1), se il valore operando è FALSE (0), ed è uguale a FALSE (0), se l'operando è diverso da FALSE (0).

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

Operazione Logica OR (||)

Operazione Logica OR (||) dei valori x e y. Il valore dell'espressione è TRUE (1), se almeno uno dei due tra il valore di x oppure il valore y sono veri (cioè non nulli). In caso contrario - FALSE (0).

if(x<0 || x>=max_bars) Print("fuori dal range");

Operazione Logica AND (&&)

Operazione Logica AND (&&) dei valori x e y. Il valore dell'espressione è TRUE (1), se il valore di x ed il valore di y sono entrambi veri (cioè non nulli). In caso contrario - FALSE (0).

Stima sintetica delle Operazioni Booleane

Lo schema della cosiddetta "stima breve" viene applicato ad operazioni booleane, ossia il calcolo dell'espressione è terminato quando il risultato dell'espressione può essere stimato con precisione.

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//--- il primo esempio della stima breve
   if(func_false() && func_true())
     {
      Print("Operazione &&: Non vedrai mai questa espressione");
     }
   else
     {
      Print("Operazione &&: Il risultato della prima espressione è falso, così la seconda non viene calcolata");
     }
//--- il secondo esempio della stima breve
   if(!func_false() || !func_true())
     {
      Print("Operazione ||: Il risultato della prima espressione è vero, così la seconda non viene calcolata");
     }
   else
     {
      Print("Operazione ||: Non vedrai mai questa espressione");
     }
  }
//+--------------------------------------------------------------------------------+
//| La funzione restituisce sempre falso                                           |
//+--------------------------------------------------------------------------------+
bool func_false()
  {
   Print("Function func_false()");
   return(false);
  }
//+--------------------------------------------------------------------------------+
//| La funzione restituisce sempre vero                                            |
//+--------------------------------------------------------------------------------+
bool func_true()
  {
   Print("Function func_true()");
   return(true);
  }

Vedi anche

Regole di Precedenza