switch
— Einleiten einer Mehrfachverzweigung.
switch( : : ControlExpression : )
switch
leitet einen Block mit einer Mehrfachverzweigung bzw.
Fallunterscheidung ein.
Der Parameter ControlExpression
muss einen Integerwert ergeben.
Der berechnete Wert bestimmt, zu welcher case
-Marke innerhalb des
switch
..endswitch
-Blocks gesprungen wird.
Jede case
-Anweisung enthält genau eine Integerkonstante.
Stimmen der in ControlExpression
berechnete Wert und die
case
-Konstante überein, wird die entsprechende Marke angesprungen.
Optional kann innerhalb eines switch
-Blocks als letzte Sprungmarke
eine default
-Anweisung angegeben werden.
Diese wird angesprungen, wenn für den in ControlExpression
berechneten Wert keine passende case
-Anweisung gefunden wurde.
Wie in den Programmiersprachen C, C++ und C# stellt die
case
-Anweisung eine Sprungmarke dar und leitet anders als
elseif
nicht einen abgeschlossenen Block ein, der automatisch
beim nächsten case
verlassen wird.
Um nach den Anweisungen eines case
-Zweiges den switch
-Block
zu verlassen, muss wie in C und C++ eine break
-Anweisung
eingebaut werden.
Diese kann auch an beliebigen Stellen innerhalb eines case
-Zweiges
angegeben werden.
Wird in der Programmausführung ein break
erreicht, wird von
dort direkt hinter die den switch
-Block abschließende
endswitch
-Anweisung gesprungen.
Sollen für mehrere Intergerwerte die gleichen Programmzeilen ausgeführt
werden, können mehrere case
-Anweisungen unmittelbar aufeinander
folgen.
ControlExpression
(input_control) integer →
(integer)
Integerausdruck, der die anzuspringende Sprungmarke bestimmt.
TestStr := '' for Index := 1 to 8 by 1 TestStr := TestStr + '<' switch (Index) case 1: TestStr := TestStr + '1' break case 2: TestStr := TestStr + '2' * intentionally fall through to 3 case 3: TestStr := TestStr + '3' * intentionally fall through to 4 case 4: TestStr := TestStr + '4' break case 5: case 6: * common case branch for 5 and 5 TestStr := TestStr + '56' break case 7: * continue for loop TestStr := TestStr + '7' continue default: TestStr := TestStr + 'd' break endswitch TestStr := TestStr + '>' endfor
Enthält die Bedingung einen korrekten Ausdruck, dann liefert
switch
(als Operator) den Wert 2 (H_MSG_TRUE).
Andernfalls wird eine Fehlerbehandlung durchgeführt und ein Fehlercode
zurückgeliefert.
Foundation