Verwenden der switch-Anweisung für mehrere Auswahlmöglichkeiten in Java

Wenn Ihr Java-Programm eine Auswahl zwischen zwei oder drei Aktionen treffen muss, wird ein wenn dann sonst Aussage wird ausreichen. Die wenn dann sonst Aussage fängt an, umständlich zu sein, wenn es eine Reihe von Entscheidungen gibt, die ein Programm treffen muss. Es gibt nur so viele sonst ... wenn Anweisungen, die Sie hinzufügen möchten, bevor der Code unordentlich aussieht. Wenn eine Entscheidung über mehrere Optionen erforderlich ist, verwenden Sie die switch-Anweisung.

Die Switch-Anweisung

Mit einer switch-Anweisung kann ein Programm den Wert eines Ausdrucks mit einer Liste alternativer Werte vergleichen. Stellen Sie sich zum Beispiel vor, Sie hätten ein Dropdown-Menü mit den Nummern 1 bis 4. Abhängig von der gewählten Nummer soll Ihr Programm etwas anderes tun:

// Angenommen, der Benutzer wählt Nummer 4 aus
int menuChoice = 4;
wechseln (menuChoice)

Fall 1:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 1 gewählt.");
brechen;
Fall 2:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 2 gewählt.");
brechen;
Fall 3:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 3 gewählt");
brechen;
// Diese Option wird ausgewählt, weil der Wert 4 mit dem Wert von übereinstimmt
// die menuChoise Variable
Fall 4: JOptionPane.showMessageDialog (null, "Sie haben Nummer 4 gewählt."); brechen;
Standard:
JOptionPane.showMessageDialog (null, "Etwas ist schief gelaufen!");
brechen;

Wenn Sie sich die Syntax der switch-Anweisung ansehen, sollten Sie einige Dinge beachten:

1. Die Variable, die den Wert enthält, mit dem verglichen werden soll, wird oben in die Klammern gesetzt.

2. Jede alternative Option beginnt mit einem Falletikett. Als nächstes folgt der Wert, der mit der obersten Variablen verglichen werden soll, gefolgt von einem Doppelpunkt. Zum Beispiel ist Fall 1: die Fallbezeichnung, gefolgt vom Wert 1 - es könnte genauso gut Fall 123: oder Fall -9: sein. Sie können so viele alternative Optionen haben, wie Sie benötigen.

3. Wenn Sie sich die obige Syntax ansehen, wird die vierte alternative Option hervorgehoben - die Groß- / Kleinschreibung, der von ihr ausgeführte Code (d. H. Der JOptionPane) und eine break-Anweisung. Die break-Anweisung signalisiert das Ende des auszuführenden Codes. Wenn Sie nachsehen, werden Sie feststellen, dass jede alternative Option mit einer break-Anweisung endet. Es ist sehr wichtig, sich daran zu erinnern, die break-Anweisung einzutragen. Betrachten Sie den folgenden Code:

 // Angenommen, der Benutzer wählt die Nummer 1 aus
int menuChoice = 1;
wechseln (menuChoice)
Fall 1:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 1 gewählt.");
Fall 2:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 2 gewählt.");
brechen;
Fall 3:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 3 gewählt");
brechen;
Fall 4:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 4 gewählt.");
brechen;
Standard:
JOptionPane.showMessageDialog (null, "Etwas ist schief gelaufen!");
brechen;

Sie erwarten, dass ein Dialogfeld mit der Meldung "Sie haben die Nummer 1 gewählt" angezeigt wird. Da jedoch keine break-Anweisung für die erste Groß- / Kleinschreibung vorhanden ist, wird auch der Code in der zweiten Groß- / Kleinschreibung ausgeführt. Dies bedeutet, dass das nächste Dialogfeld mit der Meldung "Sie haben Nummer 2 gewählt" ebenfalls angezeigt wird.

4. Am unteren Rand der switch-Anweisung befindet sich eine Standardbezeichnung. Dies ist wie ein Sicherheitsnetz, wenn keiner der Werte auf den Falletiketten mit dem verglichenen Wert übereinstimmt. Es ist sehr nützlich, eine Methode zum Ausführen von Code bereitzustellen, wenn keine der gewünschten Optionen ausgewählt ist.

Wenn Sie immer erwarten, dass eine der anderen Optionen ausgewählt wird, können Sie die Standardbezeichnung weglassen. Es ist jedoch eine gute Angewohnheit, eine am Ende jeder von Ihnen erstellten switch-Anweisung einzufügen. Es mag unwahrscheinlich erscheinen, dass es jemals verwendet wird, aber Fehler können sich in den Code einschleichen und helfen, einen Fehler abzufangen.

Seit JDK 7

Eine der Änderungen an der Java-Syntax mit der Veröffentlichung von JDK 7 ist die Möglichkeit, Strings in switch-Anweisungen zu verwenden. Das Vergleichen von String-Werten in einer switch-Anweisung kann sehr praktisch sein:

String name = "Bob";
switch (name.toLowerCase ())

Fall "Joe":
JOptionPane.showMessageDialog (null, "Guten Morgen, Joe!");
brechen;
case "michael":
JOptionPane.showMessageDialog (null, "Wie geht es dir, Michael?");
brechen;
case "bob":
JOptionPane.showMessageDialog (null, "Bob, mein alter Freund!");
brechen;
case "billy":
JOptionPane.showMessageDialog (null, "Nachmittag Billy, wie geht es den Kindern?");
brechen;
Standard:
JOptionPane.showMessageDialog (null, "Freut mich, Sie kennenzulernen, John Doe.");
brechen;

Wenn Sie zwei String-Werte vergleichen, ist es möglicherweise viel einfacher, wenn Sie sicherstellen, dass alle Werte in derselben Groß- / Kleinschreibung vorliegen. Bei Verwendung der .toLowerCase-Methode können alle Werte für die Groß- / Kleinschreibung in Kleinbuchstaben angegeben werden.

Dinge, die Sie bei der Switch-Anweisung beachten sollten

• Der Typ der zu vergleichenden Variablen muss ein Zeichen-, Byte-, Kurz-, Int-, Zeichen-, Byte-, Kurz-, Integer-, String- oder Aufzählungstyp sein.