Vezérlési szerkezetek¶
Az alábbiakban áttekintjük a JavaScript fontosabb vezérlési szerkezeteit.
Szelekciós vezérlés¶
JavaScriptben a szelekciós vezérlés megvalósítására az if, else, else if és switch utasításokat használjuk. Ezek működése megegyezik a korábban tanultakkal.
A vizsgálandó feltételek megadására az előzőekben tanult feltételes és logikai operátorokat használhatjuk.
Példa: Egy program, amely eldönti a felhasználóról, hogy nagykorú-e vagy sem
1 2 3 4 5 6 7 8 9 10 | |
Kimenet
You are a minor.
You will be of legal age in 1 years.
Példa: Egy program, amely kiírja egy érdemjegynek megfelelő szöveges értékelést.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Kimenet
Excellent
Fontos megjegyzés a switch-ről
A break utasítások használata elengedhetetlen a switch szerkezetben. Ha kihagyjuk őket, a program "átesik" a következő case ágra is (fall-through viselkedés). Ez néha hasznos lehet, de általában hibaforrás.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Kimenet
Fail
Pass
Satisfactory
Good
Excellent
Invalid grade!
Egy kis érdekesség, hogy azokat a feltételeket, amelyek csupán egy if és egy else ágból állnak, ternary operátor segítségével JavaScriptben is lerövidíthetjük (hasonlót láthattunk Pythonból, C-ből, vagy Javaból).
Szintaxisa: feltetel ? muvelet ha igaz : muvelet ha hamis.
1 2 3 4 5 6 7 8 | |
Ugyanez, rövidebben:
1 2 | |
Ismétléses vezérlés (Ciklusok)¶
JavaScriptben a while, do... while, illetve for utasításokat használjuk ismétléses vezérlés megvalósítására.
Példa: Írassuk ki az egész számokat 1-től 10-ig mindhárom ciklussal!
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
1 2 3 4 | |
Megjegyzés
A for-ciklust használhatjuk a Pythonban tanultakhoz hasonló módon is, elemsorozatok bejárására. Ezzel a következő gyakorlaton ismerkedünk meg.
Ciklusok irányítása¶
A ciklusok futását két fontos kulcsszóval irányíthatjuk:
break: Azonnal kilép a ciklusbólcontinue: Átugorja az aktuális iteráció hátralevő részét és folytatja a következő iterációval
Példa: Páros számok kiírása 1-10 között, de megállunk az 8-nál
1 2 3 4 5 6 7 8 9 | |
Kimenet
2
4
6
8
Beágyazott vezérlési szerkezetek¶
A vezérlési szerkezetek egymásba ágyazhatók, ami összetettebb logika megvalósítását teszi lehetővé.
Példa: Szorzótábla kiírása beágyazott ciklusokkal
1 2 3 4 5 6 7 8 9 10 | |
Végtelen ciklusok elkerülése¶
Sokféleképpen előfordulhat, hogy írunk egy olyan kódot, ami valahol végtelen ciklusba ragad, azaz olyan ciklusba kerül, aminek a kilépési feltétele sose fog teljesülni.
Tekintsük az alábbi példát:
1 2 3 4 5 6 7 8 | |
Akár már egy ilyen kis programnál is előfordulhat, hogy figyelmetlenségből végtelen ciklust készítünk, például egy rosszul álló operátor miatt, vagy éppen egy elmaradó növelés/csökkentés miatt. Vagy éppen egy rossz szemantikájú utasítás miatt.
1 2 3 4 5 6 7 8 | |
Egy másik példa:
1 2 3 4 5 6 7 8 | |
Figyelmeztetés
Mindig figyeljünk arra, hogy ciklusainknak legyen kilépési feltétele (és az elérhető legyen), különben végtelen ciklusba kerülhetünk, ami a program lefagyásához vezethet.