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.