Lülituse avalduse kasutamine mitme valiku korral Java-s

Kui teie Java-programm peab tegema valiku kahe või kolme toimingu vahel, siis kui, siis veel avaldus piisab. Siiski kui, siis veel avaldus hakkab tundma kohmetust, kui programmis on vaja teha mitmeid valikuid. Neid on ainult nii palju muidu... kui avaldused, mida soovite lisada enne, kui kood hakkab ilmetuma. Kui on vaja otsustada mitme valiku üle, kasutage ümberlükke avaldust.

Lülituse avaldus

Lülitusavaldus võimaldab programmil võrrelda väärtust väljendus alternatiivsete väärtuste loendisse. Kujutage näiteks ette, et teil oli rippmenüü, mis sisaldas numbreid 1 kuni 4. Sõltuvalt valitud numbrist soovite, et teie programm teeks midagi muud:

// Oletame, et kasutaja valib numbri 4
int menüüvalik = 4;
lüliti (menüüvalik)
{
1. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 1.");
vaheaeg;
2. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 2.");
vaheaeg;
3. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 3.");
vaheaeg;
// See suvand valitakse, kuna väärtus 4 ühtib väärtusega
instagram viewer

// muutuja menuChoise
4. juhtum: JOptionPane.showMessageDialog (null, "Valisite numbri 4."); vaheaeg;
vaikimisi:
JOptionPane.showMessageDialog (null, "Midagi läks valesti!");
vaheaeg;
}

Vaadates lülituslause süntaksit, peaksite tähele panema mõnda järgmist:

1. Muutuja, mis sisaldab väärtust, millega tuleb võrrelda, asetatakse ülaossa, sulgude sisse.

2. Iga alternatiivne variant algab kohtuasja sildiga. Väärtust, mida võrrelda ülaosaga muutuja tuleb järgmine, millele järgneb koolon. Näiteks juhtum 1: on juhtumi silt, millele järgneb väärtus 1 - sama hõlpsalt võib see olla juhtum 123: või juhtum -9:. Teil võib olla nii palju alternatiivseid võimalusi, kui vaja.

3. Kui vaatate ülaltoodud süntaksit, tõstetakse esile neljas alternatiivne võimalus - juhtumi silt, kood, mida see täidab (s.o. JOptionPane) ja katkend. Katkestuslause annab märku täitmisele kuuluva koodi lõpust. Kui vaatate, näete, et iga alternatiivne variant lõpeb vaheajaga. On väga oluline meeles pidada, et sisestage pausiavaldus. Mõelge järgmisele koodile:

 // Oletame, et kasutaja valib numbri 1
int menüüvalik = 1;
lüliti (menüüvalik)
1. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 1.");
2. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 2.");
vaheaeg;
3. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 3.");
vaheaeg;
4. juhtum:
JOptionPane.showMessageDialog (null, "Valisite numbri 4.");
vaheaeg;
vaikimisi:
JOptionPane.showMessageDialog (null, "Midagi läks valesti!");
vaheaeg;
}

Mida te oodata tahate, on näha a Dialoogikast öeldes: "Valisite numbri 1", kuid kuna esimese astme sildile vastavat katkestuslauset pole, käivitatakse ka teise juhtumi sildi kood. See tähendab, et ilmub ka järgmine dialoogiboks, kus öeldakse "Valisite numbri 2".

4. Lüliti väljavõtte allosas on vaikimisi silt. See on nagu turvavõrk juhuks, kui ükski kohvrisiltide väärtus ei ühti sellega võrreldava väärtusega. Kui ühtegi soovitud suvandit pole valitud, on väga kasulik pakkuda koodi täitmise viisi.

Kui eeldate alati ühe muu valiku valimist, võite vaikesildi välja jätta, kuid iga loodud lülitusväljavõtte lõppu selle panemine on hea komme. Võib tunduda ebatõenäoline, et seda kunagi kasutatakse, kuid vead võivad koodi sisse hiilida ja see võib aidata vea tabada.

Alates JDK 7-st

Üks Java süntaksi muudatustest koos JDK 7 väljalaskega on kasutamise võimalus Keeled lüliti avaldustes. Võimalus võrrelda stringi väärtusi lülitusavalduses võib olla väga kasulik:

Stringi nimi = "Bob";
lüliti (nimi.toLowerCase ())
{
juhtum "joe":
JOptionPane.showMessageDialog (null, "Tere hommikust, Joe!");
vaheaeg;
juhtum "michael":
JOptionPane.showMessageDialog (null, "Kuidas läheb, Michael?");
vaheaeg;
juhtum "bob":
JOptionPane.showMessageDialog (null, "Bob, mu vana sõber!");
vaheaeg;
juhtum "billy":
JOptionPane.showMessageDialog (null, "Pärastlõunane Billy, kuidas lastel läheb?");
vaheaeg;
vaikimisi:
JOptionPane.showMessageDialog (null, "Hea meel teiega kohtuda, John Doe.");
vaheaeg;
}

Kahe stringi väärtuse võrdlemisel võib see olla palju lihtsam, kui veenduda, et need on kõik ühel ja samal juhul. .ToLowerCase'i meetodi kasutamine tähendab, et kõik juhtumimärgistuse väärtused võivad olla sees väiketähed.

Lüliti väljavõttest meeldejäävad asjad

• Võrreldava muutuja tüüp peab olema char, bait, lühike, int, märk, bait, lühike, täisarv, string või enum.

• Kohtuasja sildi kõrval olev väärtus ei saa olla muutuja. See peab olema pidev avaldis (nt int-täht, char-täht).

• Kõigi juhtumimärkide konstantsete avaldiste väärtused peavad olema erinevad. Järgmine põhjustaks kompileerimise aja vea:

lüliti (menüüvalik)
{
juhtum 323:
JOptionPane.showMessageDialog (null, "Valisite valiku 1.");
vaheaeg;
juhtum 323:
JOptionPane.showMessageDialog (null, "Valisite valiku 2.");
vaheaeg;

• Lülitusavalduses võib olla ainult üks vaikimissilt.

• Kui kasutate lülitusavalduse jaoks objekti (nt string, täisarv, märk), veenduge, et see pole tühine. Nullobjekt põhjustab lülitusavalduse täitmisel käitusvea.