|
|
|
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
In der Mehrfachverzweigung auf der letzten Seite stellt eine Variable durch Vergleich mit verschiedenen Konstanten die Weichen für den abzuarbeitenden Zweig. Unter dieser Bedingung kann eine Fallunterscheidung verwendet werden. Die folgende Darstellung erläutert den C++-Quellcode:
| Textbeschreibung | C++-Quelltext | |
|---|---|---|
|
Schalte mit Hilfe der Eingabe auf Anfang der Fallunterscheidung Fall 1: <Celsius->Fahrenheit> Fallunterscheidung beenden Fall 2: <Celsius->Kelvin> Fallunterscheidung beenden ... in anderen Fällen vorgesehen: <Fehlerausgabe> Ende der Fallunterscheidung |
switch(Eingabe)
|
Das Schlüsselwort switch leitet die Fallunterscheidung ein.
Dahinter steht in runden Klammern der auszuwertende Ausdruck, hier Eingabe.
Alle folgenden Fälle werden in geschweiften Klammern eingeschlossen.
Ein Fall wird mit dem Schlüsselwort case eingeleitet, dem eine Konstante folgt.
Dieser Fall endet mit einer break-Anweisung zum Verlassen
der Fallunterscheidung. Fehlt am Ende dieses Falles das break, wird der sich
anschließende Fall ebenfalls bearbeitet. Das geht so weiter, bis ein break
oder das Ende der Fallunterscheidung vorliegt.
In C++ werden die case-Stellen als Einsprungpunkte zur Fallbearbeitung
verwendet. Mit dem nächsten case endet der Fall nicht. Deshalb muss für das
Ende eines Falles eine break-Anweisung eingesetzt werden.
Im Allgemeinen steht hinter switch ein Ausdruck. Eine einzelne
Variable (bspw. Eingabe) ist nur die einfachste und kürzeste Form eines Ausdrucks.
Statt switch(Eingabe) (mit Eingabe vom Typ int) könnte auch
switch(Eingabe-'0') verwendet werden, wenn Eingabe vom Typ
char wäre.
Warum hätte dies die gleiche Wirkung?
Beachten Sie, dass ein ganzzahliger Ausdruck etwas ist, was intern im Speicher ganzzahlig
dargestellt wird. So kann ein ganzzahliger Ausdruck auch ein Zeichen (char), einen
Wahrheitswert (wenig sinnvoll) oder einen Wert eines Aufzählungstyps (Beschreibung folgt) ergeben.
Ein zusammengesetzter Typ wie string kann hinter switch
nicht eingesetzt werden.
Warum ist ein boolescher Ausdruck hinter switch nicht sinnvoll?
Auftrag
Entwerfen (Struktogramm) und schreiben (Quelltext) Sie das komplette Programm zur Umrechnung
zwischen den Temperatureinheiten aus Übung 2.2 unter Verwendung einer Fallunterscheidung!
Arbeitsbereich: fallunterscheidung, Projekt: temperaturen