From 878cd139971d7cd922ca1f0f88a1a8af259725ae Mon Sep 17 00:00:00 2001 From: Sebastian Eidecker Date: Thu, 31 Oct 2019 12:03:17 +0000 Subject: [PATCH] --- Switch-Anweisung.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Switch-Anweisung.md b/Switch-Anweisung.md index 2197d0c..b8cc39c 100644 --- a/Switch-Anweisung.md +++ b/Switch-Anweisung.md @@ -12,4 +12,11 @@ switch (ausdruck) { - `ausdruck` muss Typ `enum`, `byte`, `short`, `int`, `char` oder `String` ergeben. `long` ist nicht erlaubt (Wrapper gehen auch). Der Ausdruck muss nicht konstant sein, kann z.B. durch eine Funktion ermittelt werden. - Case-Ausdrücke müssen Compile-Zeit-Konstanten sein. -- Es werden alle Case-Blöcke ab dem ersten passenden durchlaufen, bis ein `break` abbricht. Auch `der default`-Block, wenn schon gematcht war! \ No newline at end of file + - Keine nicht-finalen Variablen + - Keine Methodenaufrufe, auch nicht, wenn immutable. + - Strings sind erlaubt + - `null` nicht erlaubt +- Es werden alle Case-Blöcke ab dem ersten passenden durchlaufen, bis ein `break` abbricht. Auch `der default`-Block, wenn schon gematcht war! +- Der `default`-Block darf überall stehen und wird genauso behandelt wie alle anderen Blöcke. Ohne `break` geht es weiter. Mit `break` ist Schluss. +- Es dürfen keine zwei gleichen case-Konstanten vorhanden sein, auch nicht zwei default-Blöcke. +- Leere switch-Anweisungen sind erlaubt \ No newline at end of file