If you're seeing this message, it means we're having trouble loading external resources on our website.

Ha webszűrőt használsz, győződj meg róla, hogy a *.kastatic.org és a *.kasandbox.org nincsenek blokkolva.

Fő tartalom

Áttekintés: Ciklusok

Az alábbiakban áttekintjük mindazt, amit a ciklusokról szóló tananyagokban tanultunk.
Amikor programokat írunk, gyakran előfordul, hogy egy kódrészletet újra és újra meg szeretnénk ismételni, vagy hogy meg szeretnénk ismételni, de ugyanakkor meg is szeretnénk változtatni benne valamit minden alkalommal. Hogy megspóroljuk ennek a sok kódnak a megírását, használhatunk ciklust. JavaScriptben kétféle ciklus létezik, a while ciklus és a for ciklus.
A while ciklust arra használjuk, hogy egy feltétel hamissá válásáig ismételjük a kódot. Például ez a while ciklus addig fogja megjeleníteni y értékét a (30, y) pontban, amíg y értéke kisebb, mint 400. A ciklus minden egyes futásakor 20-at ad y-hoz, így y értéke kezdetben 40, de ezután a 60, 80, 100, 120, stb. értékekre növekszik.
var y = 40;
while (y < 400) {
    text(y, 30, y);
    y += 20;
}
Fontos, hogy a zárójelben lévő feltétel valamikor hamissá váljon – különben egy úgynevezett végtelen ciklus alakul ki! Ez történne, ha eltávolítanánk az y += 20 utasítást, mert akkor y örökre 40 maradna, így mindig 400-nál kevesebb lenne, és a program nem tudná, mikor álljon le.
var y = 40;
while (y < 400) {
    text(y, 30, y);
}
A for ciklus hasonló a while ciklushoz, de speciálisabb szintaxissal rendelkezik. A programozók akkor találták ki a for ciklust, amikor rájöttek, hogy mindig ugyanazt a három dolgot csinálják – ciklusváltozót hoznak létre (mint fent az y), megnövelik valamennyivel, és ellenőrzik, hogy kevesebb-e az értéke, mint egy bizonyos érték. A for ciklus szintaxisában e három dolognak megvan a maga speciális helye. Íme a fenti, első while ciklussal megegyező ciklus, for ciklusként:
for (var y = 40; y < 400; y += 20) {
    text(y, 30, y);
}
A ciklusok egymásba ágyazhatók. A for ciklusok egymásba ágyazása nagyon gyakori dolog, különösen 2D-s rajzok esetén, mert megkönnyíti a rácsszerű alakzatok rajzolását. Amikor egy ciklust egy másik ciklusba ágyazunk, megmondjuk a programnak, hogy „csináld ezt az X dolgot sokszor, és minden alkalommal, amikor ezt csinálod, csináld ezt a másik Y dolgot is sokszor!” Gondolj csak egy rács rajzolására – utasítani akarjuk a programot, hogy „hozz létre egy oszlopot 10-szer, és minden oszlopon belül hozz létre 15 mezőt is.” Ennek elérése érdekében így használhatod az egymásba ágyazott ciklusokat:
for (var col = 0; col < 10; col++) {
    for (var row = 0; row < 15; row++) {
        rect(col*20, row*20, 20, 20);
    }
}
Mikor célszerű for ciklust használni while ciklus helyett? Ez tőled függ. Sok programozó a for ciklust szereti jobban, mert kisebb az esélye, hogy véletlenül végtelen ciklust fog létrehozni (mivel kisebb az esélye, hogy elfelejti növelni a ciklusváltozót), de néha a while ciklus lehet az észszerűbb megoldás. Próbáld ki mindkettőt!

Szeretnél részt venni a beszélgetésben?

Még nincs hozzászólás.
Tudsz angolul? Kattints ide, ha meg szeretnéd nézni, milyen beszélgetések folynak a Khan Academy angol nyelvű oldalán.