Java Reference
In-Depth Information
PrAXISTIPP: Die Anweisungen bei einem case -Block können Sie zwar in
geschweite Klammern notieren, in der Praxis verzichtet man jedoch in der
Regel darauf.
Die Anweisung break , die am Ende jedes Blocks notiert ist, ist eine - in JavaScript 3 optio-
nale - Sprunganweisung. Damit stellen Sie sicher, dass nach einem Trefer die nachfolgend
notierten Fälle nicht ebenso ausgeführt werden. Bei dem switch-case -Konstrukt handelt es
sich um eine Fall-Through-Anweisung . Fehlt eine Sprunganweisung am Ende jedes Blocks,
werden ab einem Trefer alle folgenden Anweisungen ausgeführt, was in der Praxis ot
nicht gewünscht ist. Beim letzten Block in der switch-case -Anweisung ist das break immer
überlüssig.
HInWEIS: In der Tat wird die switch-case -Anweisung fast immer in Verbin-
dung mit break erläutert und auch so eingesetzt. Ich persönlich bin aber der
Meinung, dass ein Hauptvorteil dieses Konstrukts gerade der „durchfallende“
Charakter ohne break ist. Dieses Verhalten kann man mit der if-else -Struktur
nur mit Mühe erreichen. Beachten Sie die nachfolgenden Beispiele, in denen wir
die switch-case -Anweisung sowohl mit als auch ohne break einsetzen.
Der Fall default ist dafür da, eine Standardreaktion für den Fall zu deinieren, dass keiner
der von Ihnen deinierten Fälle zutrit. Dieser Zweig ist optional und kann entfallen, wenn
es keinen Vorgabefall geben soll. Er entspricht dem else -Teil bei einer if-else -Konstruk-
tion.
HInWEIS: Der gravierende Nachteil der Programmlusssteuerung über switch
und case ist, dass nur diskrete Fälle unterschieden werden können. Also ist
nur der Vergleich auf exakte Gleichheit mit einem Wert möglich. Es gibt keinen
Vergleich auf größer oder kleiner, wie es bei einer if-else -Konstruktion mög-
lich ist.
Zu der switch-case -Anweisung sollten ein paar Bemerkungen über Besonderheiten nicht
fehlen:
1. Die Überprüfung des Testwerts erfolgt auf Identität . Das bedeutet, dass sowohl der Wert
als auch der Datentyp übereinstimmen müssen. Das ist deshalb bemerkenswert, weil in
JavaScript in fast allen anderen Fällen bei einem Vergleich nur die Wertgleichheit über-
prüt und bei unterschiedlichen Datentypen im Hintergrund automatisch gecastet wird.
Das ist hier explizit nicht der Fall.
2. Wenn Sie bei mehreren hintereinander angeordneten Fällen alle Anweisungen und ins-
besondere das break weglassen, können Sie eine Art diskreten Wertebereich für Trefer
angeben. Ganz ohne Anweisungen werden für alle diskreten Trefer die gleichen Anwei-
sungen ausgeführt, andernfalls immer ein Teil (ab dem Trefer).
3 In einigen anderen Sprachen ist sie bei dieser Konstruktion nicht optional.
 
Search WWH ::




Custom Search