Interessant

De Switch-instructie gebruiken voor meerdere keuzes in Java

De Switch-instructie gebruiken voor meerdere keuzes in Java

Als uw Java-programma een keuze moet maken tussen twee of drie acties, een als dan anders verklaring volstaat. echter, de als dan anders verklaring begint omslachtig te voelen wanneer er een aantal keuzes zijn die een programma moet maken. Het zijn er maar zo veel 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 schakelinstructie kan een programma de waarde van een uitdrukking vergelijken met 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, wil je dat je programma iets anders doet:

// laten we zeggen dat de gebruiker nummer 4 kiest
int menuChoice = 4;
schakelaar (menuKeuze)
{
zaak 1:
JOptionPane.showMessageDialog (null, "U heeft nummer 1 gekozen");
breken;
geval 2:
JOptionPane.showMessageDialog (null, "U heeft nummer 2 gekozen");
breken;
geval 3:
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 bovenste variabele volgt, 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 instructie break geeft het einde van de code aan 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 (menuKeuze)
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 u verwacht te gebeuren, is een dialoogvenster te zien met de tekst 'U hebt nummer 1 gekozen', maar omdat er geen break-statement is die overeenkomt met het eerste hoofdetiket, wordt de code in het tweede hoofdetiket ook uitgevoerd. Dit betekent dat het volgende dialoogvenster met de tekst "U koos nummer 2" ook verschijnt.

4. Er is een standaardlabel onderaan de schakeloptie. Dit is als een vangnet voor het geval geen van de waarden van de etiketten van de behuizing 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 je altijd verwacht dat een van de andere opties wordt gekozen, kun je het standaardlabel weglaten, maar het is een goede gewoonte om er een aan het einde van elke schakelopdracht te plaatsen die je maakt. Het lijkt misschien onwaarschijnlijk dat het ooit zal worden gebruikt, maar fouten kunnen de code binnensluipen en het kan helpen een fout op te sporen.

Sinds JDK 7

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

String name = "Bob";
schakelaar (name.toLowerCase ())
{
case "joe":
JOptionPane.showMessageDialog (null, "Good morning, Joe!");
breken;
case "michael":
JOptionPane.showMessageDialog (null, "Hoe gaat het, Michael?");
breken;
case "bob":
JOptionPane.showMessageDialog (null, "Bob, mijn oude vriend!");
breken;
zaak "billy":
JOptionPane.showMessageDialog (null, "Afternoon 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. Als u de .toLowerCase-methode gebruikt, kunnen alle labelwaarden in kleine letters in kleine letters worden weergegeven.

Dingen om te onthouden over de Switch-verklaring

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

• De waarde naast het hoofdetiket kan geen variabele zijn. Het moet een constante uitdrukking zijn (bijvoorbeeld een letterlijke letter, een letterlijke letter).

• De waarden van de constante uitdrukkingen voor alle hoofdetiketten moeten verschillend zijn. Het volgende zou leiden tot een compilatie-fout:

schakelaar (menuKeuze)
{
zaak 323:
JOptionPane.showMessageDialog (null, "U hebt optie 1 gekozen");
breken;
zaak 323:
JOptionPane.showMessageDialog (null, "U hebt optie 2 gekozen");
breken;

• Er kan slechts één standaardlabel in een schakelinstructie zijn.

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


Bekijk de video: Linux Tutorial for Beginners: Introduction to Linux Operating System (Augustus 2021).