Uporaba izjave o preklopu za več možnosti na Javi

Če se mora vaš program Java odločiti med dvema ali tremi dejanji, an če torej še kaj izjava bo zadostovalo Vendar pa če torej še kaj Izjava se začne počutiti okorno, ko se lahko program odloči za več možnosti. Samo toliko jih je drugače... če stavke, ki jih želite dodati, preden začne koda izgledati neurejena. Kadar je potrebna odločitev za več možnosti, uporabite stavek stikala.

Izjava o stikalu

Izjava o stikalu omogoča programu, da primerja vrednost an izraz na seznam alternativnih vrednosti. Predstavljajte si na primer, da imate spustni meni, ki je vseboval številke 1 do 4. Glede na to, katero številko ste izbrali, želite, da vaš program naredi nekaj drugega:

// recimo, da uporabnik izbere številko 4
int menuChoice = 4;
stikalo (meni Izbira)
{
1. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 1.");
odmor;
2. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 2.");
odmor;
3. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 3.");
odmor;
// Ta možnost je izbrana, ker se vrednost 4 ujema z vrednostjo
instagram viewer

// menuIzberite spremenljivko
primer 4: JOptionPane.showMessageDialog (null, "Izbrali ste številko 4."); odmor;
privzeto:
JOptionPane.showMessageDialog (null, "nekaj je šlo narobe!");
odmor;
}

Če pogledate skladnjo izjave stikala, bi morali opaziti nekaj stvari:

1. Spremenljivka, ki vsebuje vrednost, ki jo je treba primerjati, je nameščena na vrhu, v oklepaju.

2. Vsaka alternativna možnost se začne z nalepko. Vrednost, ki jo je treba primerjati z vrhom spremenljivka je naslednji, sledi dvopičje. Na primer, primer 1: je nalepki, ki ji sledi vrednost 1 - prav tako enostavno bi lahko bilo to v primeru 123: ali primeru -9:. Lahko imate toliko alternativnih možnosti, kot jih potrebujete.

3. Če pogledate zgornjo skladnjo, je izpostavljena četrta alternativna možnost - nalepka velikih črk, koda, ki jo izvaja (t.i. JOptionPane) in izjava o prekinitvi. Izjava o prekinitvi signalizira konec kode, ki jo je treba izvesti. Če pogledate, boste videli, da se vsaka druga možnost konča z izjavo o prekinitvi. Zelo pomembno si je zapomniti, da lahko v izjavi o prekinitvi delite. Upoštevajte naslednjo kodo:

 // recimo, da uporabnik izbere številko 1
int menuChoice = 1;
stikalo (meni Izbira)
1. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 1.");
2. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 2.");
odmor;
3. primer:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 3.");
odmor;
primer 4:
JOptionPane.showMessageDialog (null, "Izbrali ste številko 4.");
odmor;
privzeto:
JOptionPane.showMessageDialog (null, "nekaj je šlo narobe!");
odmor;
}

Kar pričakujete, da se bo zgodilo, je videti pogovorno okno rekoč "Izbrali ste številko 1", ker pa ni nobene izjave o prekinitvi, ki bi ustrezala prvi nalepki, se koda v drugem primeru naredi tudi izvršeno. To pomeni, da se bo prikazalo tudi naslednje pogovorno okno z napisom "Izbrali ste številko 2".

4. Na dnu stavka preklopa je privzeta nalepka. To je kot varnostna mreža v primeru, da se nobena od vrednosti nalepk ne ujema z vrednostjo, ki se primerja z njo. Zelo koristno je zagotoviti način izvajanja kode, ko ni izbrana nobena od želenih možnosti.

Če vedno pričakujete, da bo izbrana še ena od drugih možnosti, potem lahko izpustite privzeto oznako, vendar je, če jo želite postaviti na konec vsake izjave o stikalu, dobra navada, da se vklopite. Morda se ne zdi verjetno, da bo kdaj uporabljen, vendar napake lahko zaidejo v kodo in lahko pripomorejo k napaki.

Od JDK 7

Ena od sprememb v sintaksi Java s izdajo JDK 7 je zmožnost uporabe Strune v izjavah o preklopu. Primerjava vrednosti nizov v stavku stikala je zelo priročno:

Ime niza = "Bob";
stikalo (ime.toLowerCase ())
{
primer "joe":
JOptionPane.showMessageDialog (null, "Dobro jutro, Joe!");
odmor;
ohišje "michael":
JOptionPane.showMessageDialog (null, "Kako gre, Michael?");
odmor;
primer "bob":
JOptionPane.showMessageDialog (null, "Bob, stari prijatelj!");
odmor;
primer "billy":
JOptionPane.showMessageDialog (null, "Popoldanski Billy, kako so otroci?");
odmor;
privzeto:
JOptionPane.showMessageDialog (nično, "Veseli me, John Doe.");
odmor;
}

Če primerjate dve vrednosti String, je lahko veliko lažje, če se prepričate, da sta vsi v istem primeru. Uporaba metode .toLowerCase pomeni, da so lahko vse vrednosti oznak velikih in velikih črk mala črka.

Spomniti se o izjavi o stikalu

• Vrsta spremenljivke, s katero se primerja, mora biti vrsta char, bajt, kratek, int, znak, bajt, kratek, celoten, niz ali enum.

• Vrednost poleg nalepke ne sme biti spremenljivka. Biti mora stalni izraz (npr. Int literal, char literal).

• Vrednosti stalnih izrazov na vseh nalepkah morajo biti različne. Naslednje bi povzročilo napako v času prevajanja:

stikalo (meni Izbira)
{
primer 323:
JOptionPane.showMessageDialog (null, "Izbrali ste možnost 1.");
odmor;
primer 323:
JOptionPane.showMessageDialog (null, "Izbrali ste možnost 2.");
odmor;

• V stavki stikala je lahko samo ena privzeta nalepka.

• Ko uporabljate predmet za stavek stikala (npr. Niz, celo število, znak), se prepričajte, da ni ničelna. Ničelni predmet bo pri izvajanju stavka preklopa povzročil napako izvajanja.