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 Integerwerte 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