Bruke brytererklæringen for flere valg i Java

Hvis Java-programmet ditt trenger å velge mellom to eller tre handlinger, hvis, da, ellers uttalelse vil være nok. Imidlertid hvis, da, ellers utsagn begynner å føles tungvint når det er flere valg et program måtte trenge å ta. Det er bare så mange eller hvis utsagn du vil legge til før koden begynner å se uryddig ut. Når en beslutning på tvers av flere alternativer er nødvendig, bruk brytererklæringen.

Brytererklæringen

En brytererklæring gir et program muligheten til å sammenligne verdien av en uttrykk til en liste over alternative verdier. Tenk deg for eksempel at du hadde en rullegardinmeny som inneholdt tallene 1 til 4. Avhengig av hvilket nummer som er valgt, vil du at programmet ditt skal gjøre noe annerledes:

// La oss si at brukeren velger nummer 4
int menuChoice = 4;
bytte (menyvalg)
{
sak 1:
JOptionPane.showMessageDialog (null, "Du valgte nummer 1.");
gå i stykker;
sak 2:
JOptionPane.showMessageDialog (null, "Du valgte nummer 2.");
gå i stykker;
sak 3:
JOptionPane.showMessageDialog (null, "Du valgte nummer 3.");
instagram viewer

gå i stykker;
// Dette alternativet blir valgt fordi verdien 4 stemmer overens med verdien av
// menyenValg variabel
sak 4: JOptionPane.showMessageDialog (null, "Du valgte nummer 4."); gå i stykker;
misligholde:
JOptionPane.showMessageDialog (null, "Noe gikk galt!");
gå i stykker;
}

Hvis du ser på syntaksen til brytererklæringen, bør du legge merke til noen få ting:

1. Variabelen som inneholder verdien som må sammenlignes med, plasseres øverst, inne i parentesene.

2. Hvert alternativ starter med en etikett. Verdien som skal sammenlignes med toppen variabel kommer neste, etterfulgt av en tykktarm. For eksempel er sak 1: etiketten etterfulgt av verdien 1 - det kan like gjerne være tilfelle 123: eller sak -9:. Du kan ha så mange alternative alternativer du trenger.

3. Hvis du ser på syntaks over, blir det fjerde alternative alternativet fremhevet - saketiketten, koden den kjører (dvs. JOptionPane) og et brudduttalelse. Brudduttalelsen signaliserer slutten på koden som må utføres. Hvis du ser, vil du se at alle alternative alternativer ender med en pauseerklæring. Det er veldig viktig å huske å legge inn pausestillingen. Tenk på følgende kode:

 // La oss si at brukeren velger nummer 1
int menuChoice = 1;
bytte (menyvalg)
sak 1:
JOptionPane.showMessageDialog (null, "Du valgte nummer 1.");
sak 2:
JOptionPane.showMessageDialog (null, "Du valgte nummer 2.");
gå i stykker;
sak 3:
JOptionPane.showMessageDialog (null, "Du valgte nummer 3.");
gå i stykker;
sak 4:
JOptionPane.showMessageDialog (null, "Du valgte nummer 4.");
gå i stykker;
misligholde:
JOptionPane.showMessageDialog (null, "Noe gikk galt!");
gå i stykker;
}

Det du forventer å skje er å se a dialogboks der du sa "Du valgte nummer 1", men fordi det ikke er noen brudduttalelse som samsvarer med den første etiketten, blir koden i den andre saksetiketten også kjørt. Dette betyr at den neste dialogboksen som sier "Du valgte nummer 2" også vises.

4. Det er en standardetikett nederst i brytererklæringen. Dette er som et sikkerhetsnett i tilfelle ingen av verdiene på etikettene samsvarer med verdien som blir sammenlignet med den. Det er veldig nyttig å tilby en måte å utføre kode når ingen av de ønskede alternativene er valgt.

Hvis du alltid forventer at et av de andre alternativene skal velges, kan du utelate standardetiketten, men det er en god vane å komme inn på slutten av hver brytererklæring du oppretter. Det kan virke usannsynlig at den noen gang vil bli brukt, men feil kan krype inn i koden, og det kan bidra til å få en feil.

Siden JDK 7

En av endringene i Java-syntaks med utgivelsen av JDK 7 er muligheten til å bruke Strings i bytteuttalelser. Det å være i stand til å sammenligne strengverdier i en switch-setning kan være veldig nyttig:

String name = "Bob";
switch (name.toLowerCase ())
{
sak "joe":
JOptionPane.showMessageDialog (null, "God morgen, Joe!");
gå i stykker;
saken "michael":
JOptionPane.showMessageDialog (null, "Hvordan går det, Michael?");
gå i stykker;
sak "bob":
JOptionPane.showMessageDialog (null, "Bob, min gamle venn!");
gå i stykker;
saken "billy":
JOptionPane.showMessageDialog (null, "Ettermiddag Billy, hvordan har barna det?");
gå i stykker;
misligholde:
JOptionPane.showMessageDialog (null, "Fornøyd med å møte deg, John Doe.");
gå i stykker;
}

Når du sammenligner to strengverdier, kan det være mye enklere hvis du sørger for at de alle er i samme sak. Å bruke .toLowerCase-metoden betyr at alle etikettverdiene kan være i små bokstaver.

Ting å huske på om uttalelseserklæringen

• Typen til variabelen som skal sammenlignes med, må være en type char, byte, short, int, Character, Byte, Short, Integer, String eller enum.

• Verdien ved siden av etiketten kan ikke være en variabel. Det må være et konstant uttrykk (f.eks. En int literal, en char literal).

• Verdiene til konstante uttrykk på tvers av alle etiketter må være forskjellige. Følgende vil føre til en kompileringstid-feil:

bytte (menyvalg)
{
sak 323:
JOptionPane.showMessageDialog (null, "Du valgte alternativ 1.");
gå i stykker;
sak 323:
JOptionPane.showMessageDialog (null, "Du valgte alternativ 2.");
gå i stykker;

• Det kan bare være en standardetikett i en bryterutskrift.

• Når du bruker et objekt for switch-setningen (f.eks. Streng, heltall, karakter), må du forsikre deg om at den ikke er null. Et nullobjekt vil resultere i en kjøretidsfeil når brytererklæringen kjøres.

instagram story viewer