Navigation überspringen

switch - statement

Mehrfachverzweigung

Wir erweitern das if / else - statement zu einer Mehrfachverzweigung. Stichwort ist die Erweiterung else if (Bedingung). Die bedingungslose dann-Anweisung wird an eine Bedingung gekoppelt: 

if(age == 18){
   System.out.println("Bis 22 Uhr: ja!");
}else if(age < 21){
   System.out.println("Bis 23 Uhr: ja!");
}else if(age >= 21){
   System.out.println("Lass ihn/sie rein!");
}else{
   System.out.println("Lass ihn/sie draussen!");
}

In Zeile 7 ist die alternative dann-Anweisung eingeleitet, falls alle anderen Anweisungen nicht greifen. Dieses fallback ist der sogenannte default einer Mehrfachverzweigung.

switch - statement

switch (firstLetter) {
    case "t":
        System.out.println("Erster Buchstabe ein t!");
        break;
    case "c":
        System.out.println("Erster Buchstabe ein c!");
        break;
    case "b":
        System.out.println("Erster Buchstabe ein b!");
        break;
    default:
        System.out.println("Erster Buchstabe ein anderer Buchstabe!");
}

Die switch-case-Anweisung hat leider einige Einschränkungen und ist somit eine Alternative mit Einschränkungen für if / else if Mehrfachverzweigung.

  1. Zugelassen ist der primitive Datentyp int. Das heißt, byte, char und short sind erlaubt.
  2. Objekttypen sind nicht erlaubt, also auch String-Typen.
  3. Dynamische Ausdrücke werden nicht ausgewertet.
  4. Bereiche können nicht bewertet werden (z.B. Altersbereiche)