Logische Operationen

Logische Negation NICHT(!)

Operand der logischen Negation NICHT (!) muss den arithmetischen Typ haben.  Das Ergebnis ist RICHTIG(1), wenn der Wert des Operanden   FALSCH(0) ist, und  FALSCH(0), wenn der Operand nicht gleich FALSCH(0 ist).

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

 
Logische Operation ODER (||)

Logische Operation ODER (||) der Werte x und  y. Der Ausdruckswert ist  RICHTIG(1), wenn der Wert von x oder y gueltig (nicht Null) ist. Im Gegenfall - FALSCH (0).

if(x<0 || x>=max_bars) Print("out of range");

 
Logische Operation  UND (&&)

Logische Operation UND (&&) der Werte x und y. Der Ausdruckswert ist RICHTIG (1), wenn die Werte x und y gueltig sind (nicht Null). Im Gegenfall - FALSCH(0). Logische Ausdrücke werden vollkommen berechnet, d.h. nicht mit dem Schema "Kurzberechnung".

if(p!=x && p>y) Print("TRUE");

Kurze Einschätzung der logischen Operationen

Logischen Ausdrücken gegenüber wird das Schema der sogenannten "kurzen Einschätzung" angewendet ,d.h, Berechnung des Ausdrucks wird dann beendet, wenn man das Ergebnis des Ausdrucks genau einschätzen kann.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- das erste Beispiel der kurzen Einschätzung 
   if(func_false() && func_true())
     {
      Print("Operation &&: Diese Meldung sehen Sie nie");
     }
   else
     {
      Print("Operation &&: Das Ergebnis des ersten Ausdrucks false, darum wurde der zweite Ausdruck nicht berechnet");
    ;}
//--- das zweite Beispiel der kurzen Einschätzung
   if(!func_false() || !func_true())
     {
      Print("Operation ||: Das Ergebnis des ersten Ausdrucks true, darum wurde der zweite Ausdruck nicht berechnet");
    ;}
   else
     {
      Print("Operation ||: Diese Meldung sehen Sie nie");
     }
  }
//+------------------------------------------------------------------+
//| Funktion gibt immer false zurück                                   |
//+------------------------------------------------------------------+
bool func_false()
  {
   Print("Funktion func_false()");
   return(false);
  }
//+------------------------------------------------------------------+
//| Funktion gibt immer true zurück                                   |
//+------------------------------------------------------------------+
bool func_true()
  {
   Print("Funktion func_true()");
   return(true);
  }

Sehen Sie auch

Prioritaeten und Operationsordnung