JavaScript brojački ciklus (for)
Brojački ciklus je posebna varijanta uslovnog ciklusa. Ovakav ciklus postoji u velikom broju programskih jezika i obično podrazumeva "brojanje" kroz neku promenljivu od početne do krajnje vrednosti. Koliko se različitih vrednosti dodeli toj promenljivoj, toliko puta se izvrši i sam ciklus.
U jezicima kao što su Basic ili Pascal, ovi ciklusi imaju veoma strogu formu. U jezicima koji proizilaze i jezika C (kao što je i JavaScript), ovaj ciklus daje mnogo veću slobodu programeru, ali zato početnici mogu lako napraviti grešku i "zaglaviti" program u beskonačnom ciklusu.
for ([inicijalizacija]; [uslov za iteraciju]; [kraj iteracije]) {
[naredba];
[naredba];
...
}
for ([inicijalizacija]; [uslov za iteraciju]; [kraj iteracije])
[naredba];
Inicijalizacija
Ovo je iskaz (naredba) ili lista naredbi koje se izvršavaju na početku ciklusa. Ova naredba se izvršava samo jednom, pre nego što započne prva iteracija.
Uobičajeno je da se na ovom mestu uradi inicijalizacija brojačke promenljive, tj. da joj se dodeli početna vrednost.
Ovde takođe možemo imati i celu listu iskaza odvojenih zarezom. Oni čak i ne moraju imati nikakve veze sa ciklusom, ali to je loša praksa u programiranju - tako smanjujete čitljivost programa i povećavate šansu za grešku.
for ([iskaz], [iskaz], [iskaz]; [uslov]; [kraj iteracije])
[naredba];
Uslov za iteraciju
Ovo je (aritmetičko) logički izraz koji se proverava na početku svake iteracije. Sve dok je uslov zadovoljen, naredbe unutar petlje će se izvršavati. Pod zadovoljenim uslovom se podrazumeva vrednost true, ali i bilo koji broj različit od 0, objekat različit od null i sl.
Uobičajeno, ovaj uslov predstavlja neku proveru brojačke promenljive. Obično se značenje ovog iskaza svodi na nešto kao "ako je brojačka promenljiva takva i takva, izvrši naredbe ciklusa, u suprotnom završi ciklus".
Kraj iteracije
Ovo je iskaz koji se izvršava na kraju svake iteracije - kada se završe sve naredbe unutar ciklusa, a pre nego što se ponovo testira uslov za iteraciju.
Uobičajeno se ovde vrši promena brojačke promenljive (povećavanje, smanjivanje i sl).
Tako suštinski mogu da se izostave sva tri iskaza, pa je dozvoljeno da for naredba izgleda čak i ovako:
for ( ; ; ) {
[naredba];
}
Ipak izbegavajte izostavljanje iskaza. Ako se pokaže da biste neki problem lakše rešili na taj način, razmislite da li bi bilo bolje da koristite uslovni ciklus (while i do-while) umesto toga.
Primer
Ovo je jedan veoma uobičajen primer for ciklusa, koji se izvršava 10 puta, za vrednosti brojačke promenljive od 0 do 9.
// na ulasku u ciklus i se postavlja na 0
for (var i=0; i<10; i++) {
// na početku svakog ponavljanja se uvek proverava da li je i<10,
// ako jeste, izvršavaju se naredbe
console.log("Vrednost brojača je " + i);
// na kraju svake iteracije i se povećava za 1 (i++)
}
var i = 10; // promenljiva i dobija vrednost 10
for (; i>=0; i--) { // ovde smo preskočili inicijalizaciju, pošto smo je obavili ranije
// ovo je primer ciklusa u kome brojačka promenljiva "opada" od 10 do 0.
// ciklus se izvršava 11 puta
console.log("Vrednost brojača je " + i);
}