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

click fraud protection

Wenn Ihr Java-Programm zwischen zwei oder drei Aktionen wählen muss, wird ein wenn dann sonst Erklärung wird genügen. Die wenn dann sonst Die Anweisung fühlt sich umständlich an, wenn ein Programm eine Reihe von Entscheidungen 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

Eine switch-Anweisung ermöglicht es einem Programm, den Wert von a zu vergleichen Ausdruck zu einer Liste alternativer Werte. Stellen Sie sich zum Beispiel vor, Sie hätten ein Dropdown-Menü mit den Nummern 1 bis 4. Je nachdem, welche Nummer ausgewählt wurde, soll Ihr Programm etwas anderes tun:

// Nehmen wir an, der Benutzer wählt Nummer 4
int menuChoice = 4;
Schalter (menuChoice)
{
Fall 1:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 1 gewählt");
brechen;
Fall 2:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 2 gewählt");
instagram viewer

brechen;
Fall 3:
JOptionPane.showMessageDialog (null, "Sie haben Nummer 3 gewählt");
brechen;
// Diese Option wird ausgewählt, da der Wert 4 mit dem Wert von übereinstimmt
// die Variable menuChoise
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 mit dem Wert, mit dem verglichen werden muss, wird oben in den Klammern platziert.

2. Jede alternative Option beginnt mit einem Falletikett. Der Wert, der mit der Spitze verglichen werden soll Variable kommt als nächstes, 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. Das JOptionPane) und eine break-Anweisung. Die break-Anweisung signalisiert das Ende des Codes, der ausgeführt werden muss. 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 einzugeben. Betrachten Sie den folgenden Code:

 // Nehmen wir an, der Benutzer wählt Nummer 1
int menuChoice = 1;
Schalter (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;
}

Was Sie erwarten, ist zu sehen, a Dialogbox "Sie haben die Nummer 1 gewählt", aber da es keine break-Anweisung gibt, die mit der ersten Fallbezeichnung übereinstimmt, wird auch der Code in der zweiten Fallbezeichnung ausgeführt. Dies bedeutet, dass das nächste Dialogfeld mit der Aufschrift "Sie haben Nummer 2 gewählt" ebenfalls angezeigt wird.

4. Am Ende der switch-Anweisung befindet sich eine Standardbezeichnung. Dies ist wie ein Sicherheitsnetz für den Fall, dass keiner der Werte der Gehäusekennzeichnungen mit dem zu vergleichenden Wert übereinstimmt. Es ist sehr nützlich, eine Möglichkeit 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 zu erkennen.

Seit JDK 7

Eine der Änderungen an der Java-Syntax mit der Veröffentlichung von JDK 7 ist die Verwendung Saiten in switch-Anweisungen. 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;
Fall "Michael":
JOptionPane.showMessageDialog (null, "Wie geht es dir, Michael?");
brechen;
Fall "Bob":
JOptionPane.showMessageDialog (null, "Bob, mein alter Freund!");
brechen;
Fall "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, kann es viel einfacher sein, wenn Sie sicherstellen, dass sie alle im selben Fall sind. Wenn Sie die .toLowerCase-Methode verwenden, können alle Werte für die Fallbezeichnung angegeben werden Kleinbuchstaben.

Dinge, die Sie über die Switch-Anweisung beachten sollten

• Der Typ der Variablen, mit der verglichen werden soll, muss ein Char-, Byte-, Short-, Int-, Character-, Byte-, Short-, Integer-, String- oder Enum-Typ sein.

• Der Wert neben der Fallbezeichnung kann keine Variable sein. Es muss ein konstanter Ausdruck sein (z. B. ein int-Literal, ein char-Literal).

• Die Werte der konstanten Ausdrücke in allen Fallbezeichnungen müssen unterschiedlich sein. Folgendes würde zu einem Fehler bei der Kompilierung führen:

Schalter (menuChoice)
{
Fall 323:
JOptionPane.showMessageDialog (null, "Sie haben Option 1 gewählt.");
brechen;
Fall 323:
JOptionPane.showMessageDialog (null, "Sie haben Option 2 gewählt.");
brechen;

• Eine switch-Anweisung kann nur eine Standardbezeichnung enthalten.

• Wenn Sie ein Objekt für die switch-Anweisung verwenden (z. B. String, Integer, Character), stellen Sie sicher, dass es nicht null ist. Ein Null-Objekt führt zu einem Laufzeitfehler, wenn die switch-Anweisung ausgeführt wird.

instagram story viewer