Hollywood unterstützt folgende logische Operatoren:
Die binären logischen Operatoren erlauben Ihnen, Entscheidungen zu treffen, die auf mehreren Bedingungen basieren. Jeder binäre logische Operator benötigt zwei Operanden, die verwendet werden, um das Ergebnis der logischen Bedingung auszuwerten. Alle Werte, die nicht 0, Nil oder eine leere Zeichenkette ("") sind, werden als True betrachtet.
Der Operator Or
wird benutzt, um festzustellen, ob mindestens eine von zwei Bedingungen
wahr ist. Der Operator And
überprüft, ob beide Bedingungen wahr sind und der
Operator Not
ist mit einem logischen Minus-Vorzeichen vergleichbar. Er wandelt
True in False und False in True um.
Die Operatoren And
und Or
verwenden Short-Cut-Auswertung. Das bedeutet, dass
wenn der erste Operand bereits das Ergebnis definiert, wird der zweite Operand
überhaupt nicht ausgewertet. Zum Beispiel wenn der erste Operand von einem
And
-Ausdruck False (Null) ist, dann wird der zweite Operand nicht gebraucht,
weil der ganze Ausdruck sowieso nicht mehr True sein kann. Das gleiche gilt
für einen Or
-Ausdruck, wenn der erste Operand True (ungleich Null) ist. Dann
wird der gesamte Ausdruck immer True sein - egal, welchen Wert der zweite
Operand hat.
Bitte beachten Sie: And
sowie Or
geben die Konstante, nicht aber True (1) zurück,
wenn sie wahr sind. And
gibt den zweiten Operanden, wenn der Ausdruck wahr
ist, Or
gibt den ersten Operanden zurück, wenn es wahr ist. Beispielsweise:
a = 5 And 4 ; a = 4 a = 5 And 0 ; a = 0 a = 0 And 4 ; a = 0 b = 5 Or 4 ; b = 5 b = 5 Or 0 ; b = 5 b = 0 Or 4 ; b = 4 |
Der unäre Not
Operator wird seine Operanden negieren. Das Ergebnis wird immer True (1)
oder False (0) sein. Wenn NOT mit einer Zeichenkette verwendet wird, gibt der
Ausdruck bei einer leeren Zeichenfolge ("") True zurück. Beispielsweise:
a = Not True ; a = 0 (False) a = Not False ; a = 1 (True) a = Not 5 ; a = 0 (False) a = Not Not True ; a = 1 (True) a = Not "Hello" ; a = 0 (False) a = Not "" ; a = 1 (True) |
Bitte beachten Sie: Der Not
Operator hat eine hohe Priorität. Sie werden in
den meisten Fällen Klammern benötigen. Zum Beispiel funktioniert das nicht:
If Not a = -1 ; falsch! |
Hollywood wird es zu
If (Not a) = -1 |
übersetzen, weil der Not
-Operator eine höhere Priorität als das Gleichheitszeichen
hat! Aber offensichtlich macht diese Übersetzung keinen Sinn, weil das Ergebnis
des Ausdrucks in Klammern (Not a) immer 0 oder 1 sein wird, aber nie -1. Deshalb
müssen Sie Klammern um den Ausdruck mit der niedrigeren Priorität verwenden:
If Not (a = -1) ; korrekt! |
Siehe Prioritäten der Operatoren für Details.