Middle+
Rääkige SwitchKeys-i konstruktsioonist.
sobes.tech AI
Vastus AI-lt
Konstruktsioon switch, või case mõnedes keeltes, on viis valida üks mitmest alternatiivsest koodilõigust, põhinedes muutuja või avaldise väärtusel. See on alternatiiv mitmele if-else if plokile.
Peamised komponendid:
- Väljend/Muutuja: Väärtus, mida võrreldakse iga
case-ga. case: Igacaseesindab konkreetset väärtust, millega väljend võrdleb. Kui väärtus sobib, täidetakse sellecasesisekood.break: Võtmesõna, mida kasutatakseswitchploki väljumiseks pärast vastavacasetäitmist. Kuibreakpuudub, jätkub täitmine järgmisecase-ga (fall-through).default: Valikuline plokk, mis täidetakse, kui ükskicaseei sobi väljendi väärtusega.
Näide Java keeles:
// Muutuja määratlus
int dayOfWeek = 3;
// `switch` konstruktsiooni kasutamine
switch (dayOfWeek) {
case 1:
System.out.println("Esmaspäev");
break;
case 2:
System.out.println("Teisipäev");
break;
case 3:
System.out.println("Kolmapäev");
break;
case 4:
System.out.println("Neljapäev");
break;
case 5:
System.out.println("Reede");
break;
case 6:
System.out.println("Laupäev");
break;
case 7:
System.out.println("Pühapäev");
break;
default:
System.out.println("Vale päev");
}
Python näide (sarnane käitumine saavutatakse sõnastike abil):
# Muutuja määratlus
day_of_week = 3
# Sõnastiku loomine `switch`-i imiteerimiseks
day_mapping = {
1: "Esmaspäev",
2: "Teisipäev",
3: "Kolmapäev",
4: "Neljapäev",
5: "Reede",
6: "Laupäev",
7: "Pühapäev",
}
# Väärtuse saamine sõnastikust get meetodiga ja vaikimisi väärtus
print(day_mapping.get(day_of_week, "Vale päev"))
switch kasutamise eelised:
- Lugemise lihtsus: Sageli selgem, kui on palju valikuid.
- Tõhusus: Mõnedes keeltes võib kompilaator optimeerida
switch-i kiirema täitmise jaoks (näiteks kasutades üleminekutabeleid).
Puudused:
- Andmetüüpide piirangud, mida saab
case-s kasutada (sõltub keelest). - Ei ole võimalik kasutada vahemikke või keerukaid tingimusi
case-s.
QA ja QA Automation kontekstis võib switch olla kasulik erinevate olekute, testitulemuste, andmetüüpide või kasutajaliidese elementide töötlemiseks.