De Switch-instructie gebruiken voor meerdere keuzes in Java

click fraud protection

Als uw Java-programma een keuze moet maken tussen twee of drie acties, een als dan anders uitspraak dat zal volstaan. echter, de als dan anders statement begint omslachtig te voelen wanneer er een aantal keuzes zijn die een programma moet maken. Er zijn er maar zoveel anders... als instructies die u wilt toevoegen voordat de code er slordig uitziet. Wanneer een beslissing over meerdere opties vereist is, gebruikt u de schakeloptie.

De Switch-verklaring

Met een schakelopdracht kan een programma de waarde van een vergelijken uitdrukking naar een lijst met alternatieve waarden. Stel je bijvoorbeeld voor dat je een vervolgkeuzemenu hebt met de cijfers 1 tot 4. Afhankelijk van welk nummer is gekozen, wilt u dat uw programma iets anders doet:

// laten we zeggen dat de gebruiker nummer 4 kiest
int menuChoice = 4;
schakelaar (menuChoice)
{
zaak 1:
JOptionPane.showMessageDialog (null, "U heeft nummer 1 gekozen");
breken;
geval 2:
JOptionPane.showMessageDialog (null, "U heeft nummer 2 gekozen");
breken;
geval 3:
instagram viewer

JOptionPane.showMessageDialog (null, "U heeft nummer 3 gekozen");
breken;
// Deze optie wordt gekozen omdat de waarde 4 overeenkomt met de waarde van
// de menuKies variabele
case 4: JOptionPane.showMessageDialog (null, "U heeft nummer 4 gekozen"); breken;
standaard:
JOptionPane.showMessageDialog (null, "Er is iets misgegaan!");
breken;
}

Als u naar de syntaxis van de switch-instructie kijkt, moet u een paar dingen opmerken:

1. De variabele met de waarde waarmee vergeleken moet worden, wordt bovenaan, tussen de haakjes geplaatst.

2. Elke alternatieve optie begint met een etiket op de doos. De waarde die moet worden vergeleken met de top variabel komt daarna, gevolgd door een dubbele punt. Bijvoorbeeld, geval 1: is het etiket van de zaak gevolgd door de waarde 1 - het kan net zo gemakkelijk geval 123 zijn: of geval -9:. U kunt zoveel alternatieve opties hebben als u nodig hebt.

3. Als u naar de bovenstaande syntaxis kijkt, wordt de vierde alternatieve optie gemarkeerd - het label van de zaak, de code die wordt uitgevoerd (d.w.z. het JOptionPane) en een break-instructie. De break-instructie geeft het einde aan van de code die moet worden uitgevoerd. Als je kijkt, zie je dat elke alternatieve optie eindigt met een break-statement. Het is heel belangrijk om te onthouden om in de break-statement te plaatsen. Overweeg de volgende code:

 // laten we zeggen dat de gebruiker nummer 1 kiest
int menuChoice = 1;
schakelaar (menuChoice)
zaak 1:
JOptionPane.showMessageDialog (null, "U heeft nummer 1 gekozen");
geval 2:
JOptionPane.showMessageDialog (null, "U heeft nummer 2 gekozen");
breken;
geval 3:
JOptionPane.showMessageDialog (null, "U heeft nummer 3 gekozen");
breken;
geval 4:
JOptionPane.showMessageDialog (null, "U heeft nummer 4 gekozen");
breken;
standaard:
JOptionPane.showMessageDialog (null, "Er is iets misgegaan!");
breken;
}

Wat je verwacht te gebeuren is om een ​​te zien dialoog venster zeggende: "Je hebt nummer 1 gekozen", maar omdat er geen break-statement is die overeenkomt met het eerste case-label, wordt de code in het tweede case-label ook uitgevoerd. Dit betekent dat het volgende dialoogvenster met de tekst "U koos nummer 2" ook verschijnt.

4. Onderaan de switch-instructie staat een standaardlabel. Dit is als een vangnet voor het geval geen van de waarden van de case-labels overeenkomt met de waarde die ermee wordt vergeleken. Het is erg handig om een ​​manier te bieden om code uit te voeren wanneer geen van de gewenste opties is gekozen.

Als u altijd verwacht dat een van de andere opties wordt gekozen, kunt u het standaardlabel weglaten, maar om er een aan het einde van elke switch-instructie te plaatsen, is het een goede gewoonte om erin te komen. Het lijkt misschien onwaarschijnlijk dat het ooit zal worden gebruikt, maar fouten kunnen in de code sluipen en het kan helpen om een ​​fout op te vangen.

Sinds JDK 7

Een van de wijzigingen in de Java-syntaxis met de release van JDK 7 is de mogelijkheid om te gebruiken Snaren in switch-instructies. Het kunnen vergelijken van String-waarden in een switch-instructie kan erg handig zijn:

String name = "Bob";
schakelaar (name.toLowerCase ())
{
zaak "joe":
JOptionPane.showMessageDialog (null, "Goedemorgen, Joe!");
breken;
zaak "michael":
JOptionPane.showMessageDialog (null, "Hoe gaat het, Michael?");
breken;
case "bob":
JOptionPane.showMessageDialog (null, "Bob, mijn oude vriend!");
breken;
zaak "billy":
JOptionPane.showMessageDialog (null, "Middag Billy, hoe gaat het met de kinderen?");
breken;
standaard:
JOptionPane.showMessageDialog (null, "Aangenaam kennis te maken, John Doe.");
breken;
}

Bij het vergelijken van twee String-waarden kan het een stuk eenvoudiger zijn als u ervoor zorgt dat ze allemaal in hetzelfde geval zijn. Het gebruik van de .toLowerCase-methode betekent dat alle labelwaarden van de case kunnen voorkomen kleine letters.

Dingen om te onthouden over de Switch-verklaring

• Het type van de variabele waarmee moet worden vergeleken, moet een char, byte, short, int, Character, Byte, Short, Integer, String of enum type zijn.

• De waarde naast het case-label mag geen variabele zijn. Het moet een constante uitdrukking zijn (bijvoorbeeld een letterlijke int, een letterlijke letter).

• De waarden van de constante expressies voor alle case-labels moeten verschillend zijn. Het volgende zou resulteren in een compileerfout:

schakelaar (menuChoice)
{
zaak 323:
JOptionPane.showMessageDialog (null, "U koos optie 1.");
breken;
zaak 323:
JOptionPane.showMessageDialog (null, "U koos optie 2.");
breken;

• Er kan slechts één standaardlabel zijn in een switch-instructie.

• Als u een object gebruikt voor de switch-instructie (bijv. String, Integer, Character), zorg er dan voor dat het niet null is. Een null-object resulteert in een runtime-fout wanneer de switch-instructie wordt uitgevoerd.

instagram story viewer