Java Programmieren

Switch in Java

Wann man die switch-Anweisung der if-Anweisung vorzieht

Die switch-Anweisung zählt sich in Java zu den Kontrollstrukturen und ist eine Alternative zur if-Anweisung. Zwar ist man mit einer if-Anweisung in den meisten Fällen deutlich flexibler, in einigen Anwendungsfällen erhält die switch-Anweisung aber den Vorzug vor der if-Anweisung.

Das Konzept hinter der switch-Anweisung ist denkbar einfach. Im swich-Block der mit { und } begrenzt wird, gibt es unterschiedliche Sprungziele, die mit case markiert sind. Welches Sprungziel nun angesprungen wird, das gibt der zu übergebende Ausdruck an. Anbei die Syntax des switch-Konstrukts:


switch(ausdruck)
{
	case 'konstanter_ausdruck_1': 
	   anweisung_1;
	   break; 
	case 'konstanter_ausdruck_2': 
	   anweisung_2;
	   break; 
	case 'konstanter_ausdruck_3': 
	   anweisung_3;
	    break; 
	default:
	   anweisung_sonstiges;
}

Ablauf: Der Ausdruck in den Klammern hinter switch wird ausgewertet und anschließend werden die unterschiedliche Fälle (case) durchgegangen. Wird eine Übereinstimmung mit einem der konstanten Ausdrücke gefunden, wird die entsprechende nachfolgende Anweisung ausgeführt. Anschließend wird mit break die switch-Anweisung sofort verlassen. Falls keine Übereinstimmung gefunden wird, werden die Anweisungen nach default ausgeführt.

Ursprünglich musste der Ausdruck „ausdruck „als auch die "konstanten Ausdrücke“ ganzzahlig (byte, char, short oder int) sein. Seit Java SE 7 kann dies nun auch ein String sein. (diese Neuerung dauerte ganze 16 Jahre, seit dem es vorgeschlagen wurde). Möchte man also über einen string „switchen“ muss man dafür auch mit der entsprechenden Java-Version arbeiten.

Anbei ein einfaches Programm, dass die Funktionalität von switch zeigt. Im Grunde wird darin einfach nur der Text ausgegeben, in welchen Fall man sich gerade befindet. Ausgabe in diesem Beispiel wäre also: „Fall 2“, da die Variable „zahl“ (unser Ausdruck) den Wert 2 zugewiesen bekommen hat. Hier nun das switch-Beispiel:


public static void main(String[] args) {

		int zahl = 2;

		switch (zahl) {
		case 1:
			System.out.println("Fall 1");
			break;
		case 2:
			System.out.println("Fall 2");
			break;
		case 3:
			System.out.println("Fall 3");
			break;
		default:
			System.out.println("Sonstiger Fall");
		}

	}

Hinweis: KOSTENLOSES Java-Grundlagen Training im Wert von 39 €. Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!