2019-10-31 12:03:17 +00:00
parent 724023f169
commit 878cd13997

@@ -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. - `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. - 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! - 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