Switch/case bietet sich für übersichtliche Codes bei Mehrfachverzweigungen an.
Abhängig von einem vorgegebenen Ausdruck (hinter switch) verzweigt das Coding entweder zu einer passenden case-Sprungmarke oder zur default-Sprungmarke (wenn vorhanden). Wird eine case-Marke angesprungen, dann werden alle Anweisungen bis zum Ende des switch-Konstrukts ausgeführt. Also auch die der nächsten case-Marke. Wenn das nicht gewünscht ist, dann die case-Anweisungen mit einem break beenden.
Einfache switch/case-Anweisung
public class Test { static public void main (String args[]) { int i=1; switch (i) { case 0: System.out.println("0 gefunden"); break; case 1: System.out.println("1 gefunden"); break; default: System.out.println("Keine 0 oder 1 gefunden"); } } }
Mehrere Bedingungen führen zu ein und derselben Anweisungsfolge
... int i=1; switch (i) { case 0: case 1: System.out.println("0 oder 1 gefunden"); break; case 2: case 3: System.out.println("2 oder 3 gefunden"); break; } ...
Auszuwertender Ausdruck ist char (kann int, byte, char sein)
... char c='x'; switch (c) { case 'a': System.out.println("a gefunden"); break; case 'x': System.out.println("x gefunden"); break; } ...
Tastatureingabe per case auswertet
import java.io.*; // für BufferedReader public class Test { public static void main(String[] args) { String wert,ausgabe; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("Einstellige Schulnote (1-6) eingeben:"); wert=br.readLine(); char zensur=wert.charAt(0); switch (zensur){ case '1': ausgabe="sehr gut"; break; case '2': ausgabe="gut"; break; case '3': ausgabe="befriedigend"; break; case '4': ausgabe="ausreichend"; break; case '5': ausgabe="mangelhaft"; break; case '6': ausgabe="ungenuegend"; break; default: ausgabe="Falsche Eingabe"; break; } System.out.println(ausgabe); } catch (IOException e){ System.out.println("IO-Fehler"); } } }