Mit den CASE-Anweisungen können mehrere bedingte Anweisungen mit derselben Bedingungsvariablen in einem Konstrukt kombiniert werden.
Syntax:
CASE <Var1> OF <Value1>: <Instruction 1> <Value2>: <Instruction 2> <Value3, Value4, Value5>: <Instruction 3> <Value6 .. Value10>: <Instruction 4> ... <Value n>: <Instruction n> ELSE <ELSE instruction> END_CASE;
Eine CASE-Anweisung wird nach folgendem Muster verarbeitet:
-
Wenn die Variable in <Var1> den Wert <Wert i> hat, dann wird die Anweisung <Anweisung i> ausgeführt.
-
Wenn <Var 1> keinen der angegebenen Werte hat, wird die <ELSE-Anweisung> ausgeführt.
-
Wenn dieselbe Anweisung für mehrere Werte der Variablen ausgeführt werden soll, dann kann man diese Werte durch Kommata getrennt hintereinander schreiben und so die gemeinsame Ausführung bedingen.
-
Wenn dieselbe Anweisung für einen Wertebereich einer Variablen ausgeführt werden soll, kann man den Anfangswert und den Endwert durch zwei Punkte getrennt hintereinander schreiben. So können Sie die gemeinsame Bedingung konditionieren.
Beispiel:
CASE INT1 OF 1, 5: BOOL1 := TRUE; BOOL3 := FALSE; 2: BOOL2 := FALSE; BOOL3 := TRUE; 10..20: BOOL1 := TRUE; BOOL3:= TRUE; ELSE BOOL1 := NOT BOOL1; BOOL2 := BOOL1 OR BOOL2; END_CASE;