Documentation
version 1.0d , 2009-06-08
Logische Befehle: $And{}, $Or{}, $Not{}, $>{}, $>={}, $<{}, $<={}, $=={}, $!={}
Alle ‘logischen’ Befehle vergleichen/auswerten ihre Paramter und liefern einen Boolean-Wert zurück (wahr oder falsch).
Der zurück gegebene Wert wird nicht im Text direkt angezeigt.
Diese Befehle werden typischer weise in Verbindung mit Befehlen verwendet, die einen Boolean-Wert als Paramter benötigen:
$If{}, $Break{} and $Exclude{}.
Die folgenden Beispiele demonstrieren die Befehle, indem sie fall-abhängige Ausgabe mit dem $If{} Befehl erzeugen.
Example 1:
SCRIPT |
PREVIEW-RESULT |
Output of $==: $=={5,2} Output of $If($==): $If{$=={5,2},<true!>,<false!>} |
Output of $==: Output of $If($==): false! |
Beide Zeilen benutzen den $=={} Befehl um
die Numern 5 und 2 zu vergleichen. Da sie nicht gleich sind, liefert der Befehl
den
Wert falsch zurück.
Während die erste Zeile jedoch keine
Ausgabe erzeugt (Boolean Werte werden nicht direkt angezeigt!) verwenden
wir den Wert
in der zweiten Zeile als Bedingung für den $If{} Befehl. Da die Bedingung falsch ist, wir
der zweite der beiden Text-Optionen
ausgeben.
Example 2:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num1,integer,1,5} Num1 = $Var{num1} $NewVar{num2,integer,1,3} Num2 = $Var{num2} Output of $==: $=={num1,num2} Output of $If($==): $If{$=={num1,num2},<true!>,<false!>} |
Num1 = 5 Num2 = 3 Output of $==: Output of $If($==): false! |
Dieses Beispiel ähnelt dem ersten, aber anstatt Werte direkt zu vergleichen, warden dismal die Werte zweier Variablen verglichen.
Das wird die häufigere Situation sein. In
der ersten Zeile definieren wir einen neue Zahlenvariable (Typ integer) mit dem
Namen
num1 und dem Wert 5. (Die “1” legt fest, dass die Variable ein Array mit
nur einem Eintrag (also eine einfache Zahl) ist.)
Die zweite Zeile zeigt den Wert der Variable an. Zeilen 3 und
4 wiederholen das für eine zweite Variable mit Namen num2.
Die letzten beiden Zeilen sind die selben wie im vorherigen Beispiel, allerdings warden nun die Variablen verglichen.
Example 3:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num1,integer,1,5} $NewVar{num2,integer,1,3} $Var{num1} == $Var{num2} is $If{$=={num1,num2},<true!>,<false!>} $Var{num1} != $Var{num2} is $If{$!={num1,num2},<true!>,<false!>} $Var{num1} >= $Var{num2} is $If{$>={num1,num2},<true!>,<false!>} $Var{num1} <= $Var{num2} is $If{$<={num1,num2},<true!>,<false!>} $Var{num1} > $Var{num2} is $If{$>{num1,num2},<true!>,<false!>} $Var{num1} < $Var{num2} is $If{$<{num1,num2},<true!>,<false!>} |
5 == 3 is false! 5 != 3 is true! 5 >= 3 is true! 5 <= 3 is false! 5 > 3 is true! 5 < 3 is false! |
Ein einfaches Beispiel für die verschiedenen Vergleichsbefehle. Nichts besonderes hier.
Example 4:
SCRIPT |
PREVIEW-RESULT |
$If{$=={<test1>,<test1>},<same string>,<different string>} $If{$=={<test1>,<test2>},<same string>,<different string>} $If{$=={<test1>,<TEST1>},<same string>,<different string>}
$If{$!={<test1>,<test1>},<different string>,<same string>} $If{$!={<test1>,<test2>},<different string>,<same string>} $If{$!={<test1>,<TEST1>},<different string>,<same string>} |
same string different string different string
same string different string different string |
Das Beispiel zeigt, dass man die Befehle $=={} und $!={} auch für Textvariablen (Typ string) benutzen kann.
Der Vergleich wird exakt durchgeführt. Groß-Kleinschreibung zählt also als Unterschied!
Example 5:
SCRIPT |
PREVIEW-RESULT |
P = $If{ $=={1,1} , <true>, <false> } Q = $If{ $=={0,1} , <true>, <false> } NOT P = $If{ $Not{$=={1,1}} , <true>, <false> } NOT Q = $If{ $Not{$=={0,1}} , <true>, <false> } P AND Q = $If{ $And{$=={1,1},$=={0,1}} , <true>, <false> } P OR Q = $If{ $Or{$=={1,1},$=={0,1}} , <true>, <false> } |
P = true Q = false NOT P = false NOT Q = true P AND Q = false P OR Q = true |
Die Befehle $And{}, $Or{}, $Not{} verbinden verschiedene Boolean Werte mit logischen Operatoren.
In diesem Beispiel erzeugen wir zunächst zwei Boolean Werte (P & Q) mit dem Befehl $=={}.
Die restlichen Zeilen demonstrieren die logischen Operatoren.
Programmierer wird interessieren, dass man Boolean-werte nicht als einfache Integer Zahlen mit Wert 0 oder 1 behandeln kann.
Es ist nicht möglich, einen Booleanwert direkt einer integer-Variable zuzuordnen.
Allerdings can man den $If{} Befehl dazu verwenden, fall-abhängig Werte zuzuweisen, wie das folgende Beispiel zeigt:
Example 6:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num,integer,1,5} $SetVar{num,$If{$=={1,0},<10>,<2>}} $Var{num}
$NewVar{str,string,1,<empty>} $SetVar{str,$If{$=={1,0},<first choice>,<second choice>}} $Var{str} |
2
second choice |
Der $If{} Befehl innerhalb des $SetVar{} Befehls kann einer Variable einen fall-abhängigen Wert zuweisen.
Die selbe Vorgehensweise kann auch für Textvariablen verwendet werden, wie die letzten 3 Zeilen zeigen.