
Die alternativ auszuführenden Aktionen hängen von der Auswertung eines
einzigen Ausdrucks ab. Kriterium ist der Wert, den dieser Ausdruck
liefert.
Die Fallauswahl ist eine spezielle Form der Mehrfachverzweigung. Die für
sie in vielen Programmiersprachen vorgesehene spezielle Notationsform ist
jedoch einfacher und übersichtlicher: Alle Bedingungen der
Mehrfachverzweigung lassen sich auf die Auswertung nur eines Ausdrucks
zurückführen.
Bei der Fallauswahl sehen jedoch viele Programmiersprachen Restriktionen
hinsichtlich der Art des auswertbaren Ausdrucks vor.
Pseudocode
SELECT ausdruck
CASE fall_1: anweisungsfolge_1
CASE fall_2: anweisungsfolge_2
...
ELSE anweisungsfolge_n
END SELECT
Pascal

CASE ausdruck OF
fall_1: anweisung_1; { einzelne Anweisung oder Verbundanweisung }
...
fall_n: anweisung_n; { einzelne Anweisung oder Verbundanweisung }
END;
ausdruck muß einen Wert mit ordinalem Datentyp besitzen, z.B.
INTEGER, CHAR, Aufzählungsdatentyp. Für fall_i darf nicht nur ein einzelne Konstante stehen. Es gibt insgesamt drei Möglichkeiten der Angabe:
TYPE wtag = (montag, dienstag, mittwoch, donnerstag, freitag,
samstag, sonntag);
VAR wochentag : wtag;
CASE wochentag OF
montag .. freitag: arbeiten;
samstag: feiern;
sonntag: ausruhen;
END;
Extended Pascal
CASE ausdruck OF
fall_1: anweisung_1;
fall_2: anweisung_2;
...
OTHERWISE anweisung_n;
END;
ausdruck muß einen Wert mit ordinalem Datentyp liefern. Turbo Pascal

CASE ausdruck OF
fall_1: anweisung_1;
fall_2: anweisung_2;
...
ELSE anweisung_n;
END;
ausdruck muß einen Wert mit ordinalem Datentyp liefern. Beispiel (Turbo Pascal):
TYPE wtag = (montag, dienstag, mittwoch, donnerstag, freitag,
samstag, sonntag);
VAR wochentag : wtag;
CASE wochentag OF
samstag: feiern;
sonntag: ausruhen;
ELSE arbeiten;
END;
Das obige Beispiel ließe sich auch als Mehrfachverzweigung notieren:
IF wochentag = samstag THEN
feiern
ELSE IF wochentag = sonntag THEN
ausruhen
ELSE
arbeiten;
Während die CASE-Anweisung voraussetzt, daß wochentag einen
ordinalen Datentyp besitzt, kann innerhalb der IF-THEN-ELSE-Konstruktion
wochentag z.B. auch eine Zeichenkette sein. Die IF-THEN-ELSE-Konstruktion ist allgemeiner einsetzbar. In Spezialfällen ist die CASE-Konstruktion jedoch alternativ verwendbar und führt dann meist zu effektiveren und besser lesbaren Programmen.
Achtung:
Standard Pascal sieht keinen Alternativ-Zweig vor !
Der Alternativ-Zweig wird immer dann ausgeführt, wenn keiner der
explizit angegebenen Fälle zutrifft.
Extended Pascal erlaubt einen Alternativ-Zweig, der durch das Schlüsselwort OTHERWISE eingeleitet wird !
CASE wochentag OF
samstag: feiern;
sonntag: ausruhen;
OTHERWISE arbeiten;
END;
Auch Turbo Pascal und Delphi sehen den Alternativ-Zweig vor, jedoch mit
anderer Syntax als in Extended Pascal: Es wird das Schlüsselwort
ELSE verwendet.