Middle+
Meséljen a SwitchKeys szerkezetéről.
sobes.tech MI
Válasz az MI-től
A switch, vagy case szerkezet néhány nyelvben egy módja annak, hogy kiválasszunk egyet a több alternatív végrehajtási út közül a változó vagy kifejezés értéke alapján. Ez egy alternatíva a több if-else if blokkhoz.
Fő összetevők:
- Kifejezés/Változó: Az érték, amelyet összehasonlítanak minden
case-szel. case: Mindencaseegy adott értéket képvisel, amellyel az kifejezést összehasonlítják. Ha az érték egyezik, a kód végrehajtódik ebben acase-ben.break: Kulcsszó, amit aswitchblokk elhagyására használnak a megfelelőcasevégrehajtása után. Ha hiányzik abreak, a végrehajtás a következőcase-be folytatódik (fall-through).default: Opcionális blokk, amely végrehajtódik, ha egyikcasesem egyezik az értékkel.
Java példában:
// Változó meghatározása
int dayOfWeek = 3;
// switch szerkezet használata
switch (dayOfWeek) {
case 1:
System.out.println("Hétfő");
break;
case 2:
System.out.println("Kedd");
break;
case 3:
System.out.println("Szerda");
break;
case 4:
System.out.println("Csütörtök");
break;
case 5:
System.out.println("Péntek");
break;
case 6:
System.out.println("Szombat");
break;
case 7:
System.out.println("Vasárnap");
break;
default:
System.out.println("Érvénytelen nap");
}
Python példában (hasonló viselkedés szótárak segítségével érhető el):
# Változó meghatározása
day_of_week = 3
# Szótár létrehozása a switch imitálására
day_mapping = {
1: "Hétfő",
2: "Kedd",
3: "Szerda",
4: "Csütörtök",
5: "Péntek",
6: "Szombat",
7: "Vasárnap",
}
# Érték lekérése a szótárból a get metódussal és alapértelmezett értékkel
print(day_mapping.get(day_of_week, "Érvénytelen nap"))
A switch előnyei az if-else if-hez képest:
- Átláthatóság: Gyakran tisztább, ha sok lehetőség van.
- Teljesítmény: Néhány nyelvben a fordító optimalizálhatja a
switch-et gyorsabb végrehajtásra (pl. ugrótáblák használatával).
Hátrányok:
- A
case-ben használható adattípusok korlátozottak (nyelvtől függően). - Nem lehet tartományokat vagy összetett feltételeket használni a
case-ben.
QA és QA Automation környezetben a switch különböző állapotok, teszteredmények, adattípusok vagy felhasználói felület elemek kezelésére használható.