– Szia Amigo!
"Szia, Bilaabo! Örülök, hogy újra látlak. Csak az előadásaid olyan jók és érthetőek. Nem úgy, mint ez a Java memóriamodell."
"Igen, Bilaabo tudja, hogyan kell leckéket választani. Ma a switch nyilatkozatról fogok mesélni."
– Azt hiszem, valaki már mesélt róla.
– Ellie igen. Szóval, Amigo nem akar leckét hallani a switch-kijelentésről? Talán elkezdenéd tanítani a sajátodat?
"Nem, akarom, akarom. Hallgassunk a switch nyilatkozatról."
"OK. A Java-ban van valami, amit switch utasításnak neveznek. Ez kényelmes, ha bizonyos műveleteket kell végrehajtania valamely változó különböző értékétől függően."
Példa kapcsolóval | Egyenértékű kód |
---|---|
|
|
A switch utasítással a kívánt kódrészletre ugorhat, ha a neki átadott változó megegyezik a kulcsszó kis- és nagybetűjét követő értékkel.
Ha i 1, akkor a végrehajtás az «1. eset» sorra ugrik.
Ha i 2, akkor a végrehajtás a „2. eset” sorra ugrik.
Ha i 3, akkor a végrehajtás a „3. eset” sorra ugrik.
"Ha nincs ugrás egyik esetre sem, akkor az «alapértelmezett» blokk végrehajtásra kerül."
"Értem. És a jobb oldalon ugyanaz a logika, de if utasításokkal van megvalósítva?"
"Igen."
"És mi a helyzet a "break" szóval? Azt mondtad, hogy csak hurokban használható?"
"Igen, és itt. Amikor a break utasítás végrehajtásra kerül, azonnal kilépünk a kapcsolóból ."
"De ha a break utasítást eltávolítják, akkor a kapcsolón belüli összes sor a végéig végrehajtásra kerül."
Példa | Kimenet (i = 1 esetén) | Kimenet (i = 2 esetén) |
---|---|---|
|
egy kettő három sok |
kettő három sok |
"Valójában a case egy címke a kódban. A switch utasításban a következő címkére ugrunk, és elkezdjük végrehajtani az összes kódot a váltás végéig, vagy amíg nem találkozunk egy break utasítással."
"Tehát, ha nem írunk törést, akkor az a sor, amelyre ugrunk, végrehajtásra kerül, majd az összes többi sor a záró kapcsos zárójelig. Így van?"
"Igen."
De jobban szeretem használni az if utasításokat. Nincsenek ezek az értelmetlen break utasítások.
"Igaz, hogy ha az állítások nagyon gyakran tömörebbek. De a switch utasítás néha jobban olvasható."
"Hasonlítsa össze:"
Példa kapcsolóval | Egyenértékű kód |
---|---|
|
|
– Nem mondanám, hogy olvasmányosabb.
– Jó, de mi van ezzel a példával?
Példa kapcsolóval | Egyenértékű kód |
---|---|
|
|
"Bilaabo, a példád nem egészen jól néz ki. Szóval, kihagyhatom a break utasítást, ha return-t használok?"
"Így van. A return utasítás azonnal kilép a metódusból."
"Úgy tűnik, hogy ha az állítások mindig tömörebbek. De a switch utasítás ezúttal olvashatóbbnak bizonyult."
– Fú, végre.
"Még egy dolog. Nem kell alapértelmezettet írni a végére. Ha nem, akkor egyszerűen nem történik semmi, ha egyik címke sem egyezik."
– Ó, pontosan. Mintha más, de olvasható – sokkal olvashatóbb!
"Remek. Örülök, hogy tetszett a leckém."
"Ó, majdnem elfelejtettem. Kezdetben csak primitív típusokat és enumokat lehetett használni a switch utasításokban. Most azonban hozzáadták a Strings támogatását."
– Úgy érted, hogy én írom ezt?
public int getNumber(String number)
{
switch(number)
{
case "one":
return 1;
case "two":
return 2;
case "three":
return 3;
default:
return -1;
}
}
– Igen. Kényelmes, igaz?
"Igen. A Switch kijelentések nagyszerűek!"
GO TO FULL VERSION