switch - break hogy működik?

0 értékelés
79 megtekintés
hazazs (14 pont) kérdezte 2018. Nov 5.
Van egy kódrészletem:

var a = 'Rudi';

switch(a) {
 case 'Rudi': alert('Rudi!');
 case 'Monika': alert('Monika!');
}

Azt tudom, hogy minden case blokk/sor után kell egy break, de anélkül miért adja vissza Rudi!-t is, meg Monika!-t is? Megvizsgálja első esetet ('Rudi'), break hiánya miatt nem ugrik ki az egész switch-ből oké, de hogy jut el a második esetben ('Monika') az alertig, ha nem teljesül a feltétel?

Ha mindkét sor után breaket írok, akkor miért nem megy bele 'Rudi'-ba az alertig, mint break nélkül a 'Monika'-ba? Főleg hogy a break már az alert után van. Elmagyarázná ezt nekem valaki?

Üdv,

hazazs

1 Válasz

0 értékelés
tkiss Szakértő (378 pont) válaszolta meg 2018. Nov 6.
hazazs kiválasztva 2018. Nov 6.
 
Legjobb válasz

Szia!

Switch-case esetében az első case ágtól kezdve, amelynél a kifejezés megegyezik a megadott értékkel végrehajtódnak a switch-ben foglalt utasítások. Ezért szükséges hogy break-et helyezz el az adott case ágban,
ha azt akarod hogy csak az fusson le. Ugyanakkor ez lehetőséget ad arra is, hogy összevonj, ha azt akarod hogy több case esetén is ugyanazon utasítások fussanak meg:

var a = 'Rudi';

switch(a) {
case 'Rudi':
case 'Monika': alert('Rudi vagy Monika!');
break;
case 'Peti': alert('Peti!');
break;
}

Üdv.: Tamás

hazazs (14 pont) szólt hozzá 2018. Nov 6.
Igen időközben én is megtaláltam a kulcsmondatot, miszerint az ELSŐ PONTOS EGYEZÉSTŐL kezdve MINDEN TOVÁBBI case lefut break nélkül. És ez tökéletesen passzol megoldásként a kérdésben felvetett problémámra. Ilyen a működése, el kell fogadni.

Neked pedig köszönöm a gyors választ, és a kiegészítő információkat. Hasznos volt.

Üdv,
hazazs
...