switch - break hogy működik?

0 értékelés
48 megtekintés
hazazs (14 pont) kérdezte 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ő (308 pont) válaszolta meg Nov 6.
hazazs kiválasztva 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á 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
...