Syntax:
CASE Ausdruck OF
WHEN Ausdruck1[,
AusdruckŒ] : [
Anweisungen]
[
Anweisungen]
[
WHEN AusdruckŒ : [
Anweisungen]
[
Anweisungen]]
OTHERWISE [
Anweisungen]
[
Anweisungen]
ENDCASE
Argumente:
Ausdruck kann jeder beliebige numerische oder String-Ausdruck sein. Der Wert von
Ausdruck wird mit den Werten aller Ausdrücke in der Liste nach der ersten WHEN Anweisung verglichen. Wird eine Entsprechung gefunden, gelangt der Block mit den Anweisungen zur Ausführung, der nach WHEN beginnt und mit dem nächsten WHEN, OTHERWISE oder ENDCASE abgeschlossen wird. Die Kontrolle geht dann an die Anweisung nach ENDCASE über. Besteht keine *bereinstimmung, wird das nächste WHEN verwendet, wenn ein solches vorliegt. OTHERWISE ist gleichbedeutend mit WHEN, entspricht aber jedem beliebigen Wert.
Hinweise:
OF muß das letzte Element der Zeile sein.
WHEN muß das erste Nicht-Leerzeichen-Objekt auf einer Zeile sein. Ein CASE Konstrukt kann jede beliebige Zahl von WHEN Anweisungen enthalten, doch werden nur die Anweisungen des ersten mit einem entsprechenden Wert ausgeführt. Für eine generelle Entsprechung muß OTHERWISE verwendet werden.
OTHERWISE gelangt nur zur Ausführung, wenn die vorangehenden WHEN Anweisungen keine Paarung mit dem Wert des CASE Ausdrucks erbracht haben. OTHERWISE paßt zu allen Werten. Wenn es vorhanden ist, werden alle nachfolgenden Anweisungen bis zum Auftreten des gepaarten ENDCASE ausgeführt.
ENDCASE muß das erste Nicht-Leerzeichen-Objekt auf einer Zeile sein. Wenn die WHEN oder OTHERWISE Anweisungen ausgeführt sind, geht die Kontrolle an die Anweisung nach ENDCASE über. Nach Abarbeitung von ENDCASE signalisiert es das Ende der CASE Konstruktion, wenn keine Paarungen vorgenommen wurden. Die Programmkontrolle läuft dann ganz normal weiter.
Beispiel:
CASE Taste$ OF
WHEN "j","J" : PROCja
WHEN "n","N" : PROCnein
OTHERWISE PROCnachfragen
ENDCASE