Mithilfe logischer Ausdrücke wird der Pfad festgelegt, den Ihre Programmlogik durch bedingte Anweisungen und Schleifenanweisungen wie beispielsweise 'if', 'while', 'for' und 'case' durchläuft.
Die nachstehende Tabelle enthält eine Übersicht über die Operatoren und Operanden für elementare logische Ausdrücke. Elementare Ausdrücke bestehen aus einem Operanden, einem Vergleichsoperator und einem zweiten Operanden.
| Erster Operand | Vergleichsoperator | Zweiter Operand |
|---|---|---|
| Ausdruck für Datum/Uhrzeit | ==, != , <, >, <=, >= | Ausdruck für Datum/Uhrzeit Der Typ des ersten Ausdrucks muss mit dem des zweiten Ausdrucks kompatibel sein. Siehe Zuordnungskompatibilität in EGL. Bei Vergleichen für Datum/Uhrzeit steht das Größer-als-Zeichen (>) für einen späteren Zeitpunkt, wohingegen das Kleiner-als-Zeichen (<) für einen früheren Zeitpunkt steht. |
| Numerischer Ausdruck | ==, != , <, >, <=, >= | Numerischer Ausdruck |
| Zeichenfolgeausdruck | ==, != , <, >, <=, >= | Zeichenfolgeausdruck |
| Zeichenfolgeausdruck | like | Regulärer Ausdruck Ein Zeichenfeld oder -literal, mit dem der Zeichenfolgeausdruck verglichen wird, und zwar Zeichenposition für Zeichenposition von links nach rechts. Der reguläre Ausdruck kann Platzhalter- und Escapezeichen enthalten. |
| Zeichenfolgeausdruck | matches | Regulärer Ausdruck Ein Zeichenfeld oder -literal, mit dem der Zeichenfolgeausdruck verglichen wird, und zwar Zeichenposition für Zeichenposition von links nach rechts. Der reguläre Ausdruck kann Platzhalter- und Escapezeichen enthalten. Die Regeln für reguläre Ausdrücke unterscheiden sich bei den Operatoren 'like' und 'matches'. |
| Wert vom Typ NUM oder CHAR | ==, != , <, >, <=, >= | Wert vom Typ NUM oder CHAR |
| Suchwert | in | Feldgruppenname Weitere Informationen finden Sie unter Operator 'in'. |
| Variable im Basisdatensatz |
|
Eine der folgenden Optionen:
|
| sysVar.systemType |
|
Weitere Informationen finden Sie unter systemType. |
| Datensatzname |
|
Ein zur Datensatzorganisation passender E/A-Fehlerwert. Siehe E/A-Fehlerwerte. |
Mithilfe der Operatoren 'und' (&&) sowie 'oder' (||) können Sie komplexe Ausdrücke erstellten, indem Sie Paare von elementaren Ausdrücken entsprechend kombinieren. Darüber hinaus können Sie den Operator 'nicht' (!) verwenden, um den Wert eines Ausdrucks umzukehren (indem TRUE in FALSE und FALSE in TRUE geändert wird).
var01 == var02 || 3 in array03 || x == y
Wenn var01 nicht mit var02 übereinstimmt, wird die Auswertung fortgesetzt. Wenn der Wert 3 in array03 vorhanden ist, ist der Ausdruck insgesamt TRUE (wahr), und EGL braucht den letzten elementaren logischen Ausdruck (x == y) nicht mehr auszuwerten.
Ähnlich gilt: Wenn elementare logische Ausdrücke mit Operatoren des Typs 'und' kombiniert werden, stoppt EGL die Auswertung, sobald einer der elementaren logischen Ausdrücke in FALSE (falsch) aufgelöst wird. Im folgenden Beispiel stoppt die Auswertung, sobald festgestellt wird, dass 'var01' nicht mit 'var02' übereinstimmt:
var01 == var02 && 3 in array03 && x == y
| Plattform | Problem |
|---|---|
| COBOL-Generierung | COBOL bietet keine Möglichkeit für den Vergleich von MBCHAR oder DBCHAR mit UNICODE oder STRING. |
| JavaScript-Generierung | Es werden ausschließlich die folgenden Varianten des Operators 'is ' und 'not '
unterstützt: Verwendung von 'sysVar.systemType' und datensatzspezifische Tests für
'blanks' und 'numeric'. Die folgenden Typen werden nicht unterstützt: ArrayDictionary (Feldgruppenwörterverzeichnis), BIN (mit Dezimalstellen), BLOB, CHAR, CLOB, DBCHAR, HEX, INTERVAL, MBCHAR, NUMC, STRING (mit Größenbegrenzung), PACF, UNICODE und strukturierte Datensatzabschnitte. |
| VisualAge Generator-Kompatibilitätsmodus | Sie können 'is' bzw. 'not' nicht verwenden, um einen Wert zu testen, der von 'vgLib.getVAGSysType()' zurückgegeben wird. |