A while ciklussal addig futtathatsz ismételten kódot, amíg egy adott feltétel teljesül.
A while kulcsszó után egy kerek zárójelbe (()) tett feltétel áll, majd egy kapcsos zárójelbe ({}) tett kódblokk, amely a ciklus törzsét tartalmazza.
while (condition) {
// code that is executed repeatedly as long as the condition is
// true
}
A JavaScriptben van do-while ciklus is. Itt a feltételt a program a ciklustörzs végrehajtása után ellenőrzi. Ez akkor hasznos, ha a feltétel a törzsben elvégzett kiértékelésektől függ.
do {
// The code here will always be executed once and then
// repeatedly while the condition is true.
} while (condition);
A ciklus törzsén belül a break kulcsszóval teljesen leállíthatod a ciklus végrehajtását.
Ezt gyakran true feltétellel kombinálva használjuk.
Így a ciklus törzsének bármely pontjáról szabályozhatod, hogy mikor álljon le a ciklus.
const winningNumber = 7;
while (true) {
const num = readUserGuess();
if (num === winningNumber) {
break;
}
}
A break kulcsszó nem használható a ciklusba ágyazott függvényen belül; erre példát az MDN dokumentációjában találsz.
A break-kel ellentétben a continue kulcsszó csak az aktuális iteráció végrehajtását állítja le, és a következővel folytatja.
A continue segítségével gyakran elkerülheted, hogy a ciklustörzs nagy részét elágazásba csomagold.
let i = 0;
while (i < 100) {
i = i + 2;
if (i % 3 === 0) {
continue;
}
// The code here will only be executed when i was not divisible
// by 3 in the check above.
}
Végtelen ciklus akkor jön létre, ha a ciklus feltétele mindig teljesül, és a ciklus törzsében nem érünk el break vagy return utasítást. A végrehajtást kívülről kell megszakítani. Attól függően, hogy milyen környezetben fut az ilyen kód, ez automatikusan megtörténik, vagy kézi beavatkozást igényel.
let i = 0;
while (i < 100) {
if (i % 3 === 0) {
continue;
}
i = i + 2;
}
// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.
Lehet, hogy ebben az egyszerű példában triviálisnak tűnik észrevenni a végtelen ciklust, bonyolultabb kódban viszont ez korántsem ilyen egyszerű. Jó gyakorlat alaposan végiggondolni, hogy a feltételed végül hamis lesz-e, illetve hogy eljut-e a végrehajtás a break vagy return utasításig.