Uslovni ciklusi u JavaScriptu (while i do-while)
U svakom malo složenijem programu, potrebno je da imamo neke naredbe koje se izvršavaju više puta. Ove naredbe se izvršavaju kroz takozvani "ciklus", odnosno "petlju".
Svaki "prolazak" kroz petlju naziva se "iteracija".
Najjednostavniji ciklusi su oni koji obezbeđuju da se naredbe izvršavaju dok je neki uslov zadovoljen. Ovo su tzv "uslovni ciklusi". Zamislite da imate naredbu if koja proverava neki uslov, a da se naredbe unutar if-a izvršavaju više puta - sve dok je taj uslov zadovoljen. Ovi ciklusi funkcionišu upravo na taj način, s tim što se umesto if, koristi naredba while.
Postoje dva tipa ovih ciklusa, zavisno od toga da li se uslov proverava na početku ili na kraju.
Ciklusi sa proverom uslova na početku (while)
Kod ovog ciklusa na početku se proverva uslov i ako je on zadovoljen, izvršavaju se naredbe ciklusa. Uslov će se proveravati pri svakom ulasku u ciklus, i naredbe će se ponavljati sve dok je uslov zadovoljen.
while ([izraz]) {
[naredba];
[naredba];
...
}
Iako je uobičajeno da while izraz bude neki izraz koji vraća logičku vrednost (npr. neko upoređivanje), to ustvari može biti bilo kakav izraz. Ne zaboravite, sve vrednosti se mogu tumačiti i kao logičke vrednosti, tako da se broj 0, prazan string, null i nothing tumače kao false, a sve ostalo kao true.
Ako je potrebno da se ponavlja samo jedna naredba, možemo da izostavimo vitičaste zagrade.
while ([izraz])
[naredba];
Ipak, ovo vam ne bismo preporučili - u kasnijim prepravkama programa se može desiti da dodamo naredbe u ciklus, a zaboravimo da ih obuhvatimo u blok. Naš savet - uvek navodite i vitičaste zagrade, vdećete, program će vam biti "čistiji".
Ciklusi sa proverom uslova na kraju (do-while)
Kod ovog ciklusa se početak ciklusa označava komandom do a na kraju se postavlja naredba while sa uslovom. isto kao i malopre, ciklus se izvršava sve dok je uslov zadovoljen.
do {
[naredba];
[naredba];
...
} while ([izraz]);
Primeri za uslovne cikluse
Pokušajmo da izračunamo Fibonačijev niz brojeva. On se računa tako što se svaki sledeći broj dobija kao zbir prethodna dva. Računanje ćemo nastavljati sve dok su članovi niza manji od 1000.
var a = 0;
var b = 1;
console.log(a);
console.log(b);
var novi = 0;
while (novi < 1000) {
novi = a+b;
console.log(novi);
a = b;
b = novi;
}
U drugom primeru ćemo sabirati prirodne brojeve od 1 pa naviše. Sabiranje ćemo vršiti sve dok je zbir manji od 1000, a kao rezultat ćemo ispisati koliko je brojeva bilo potrebno da bismo dobili taj rezultat.
var num = 0;
var sum = 0;
do {
sum += num;
num++;
} while (sum < 1000);
console.log(num);