28.10. Upotreba ciklusa Do/While
0 - nastavak rada sa zadatkom iz prethodne lekcije
U istom folderu gde su fajlovi iz prethodne lekcije kreirati petlje.html i povezati ga sa istim css i js fajlovima
Na vrh html stranice iz prethodne lekcije postaviti link ka stranici petlje.html, a na vrh stranice petlje.html postaviti link ka stranica.html.
U novonapravljenom html fajlu kreirati po dugme za svaki od delova koda koji se radi - po izboru učenika - i paragraf sa id-jem u koji se smešta rezultat.
Na primer, ako treba ispisati niz od 1 do 5 i ako se koristi for petlja
<!-- za HTML kod -->
<button onclick="funkcija1()"> Dugme1 <button> .... <p id="niz1"> Niz: </p>
// JavaScript kod bi bio ...
function funkcija1(){
for(let i=0; i<5; i++)
document.getElementById("niz1").innerHTML += (" "+ i);
}
Na kraju uraditi i prvi zadatak iz dela za vežbe, korišćenjem prompta. Umesto u konzolu, rezultat slati u alert.
... Malo bolji učenici mogu da urade i drugi zadatak ...
Ciklus Do/While omogućava izvršavanje bloka koda najmanje jednom, pa zatim proverava uslov da bi odlučio da li će se taj blok ponoviti. Ovaj tip ciklusa je koristan kada je potrebno izvršiti zadatak pre nego što proverimo uslove za dalje ponavljanje.
1. Sintaksa Do/While ciklusa
Sintaksa Do/While ciklusa se razlikuje od While ciklusa po tome što se prvo izvršava blok koda, a tek potom proverava uslov. To znači da će se blok koda uvek izvršiti bar jednom, bez obzira na to da li je uslov ispunjen.
Sintaksa:
do {
// Blok koda koji se izvršava
} while (uslov);
- Blok koda: Deo koda koji se izvršava unutar
dobloka. - Uslov: Logički izraz koji se proverava nakon svake iteracije. Ako je istinit (
true), ciklus se ponavlja.
Primer:
let broj = 0;
do {
console.log(broj);
broj++;
} while (broj < 5);
U ovom primeru, broj se štampa u konzoli i povećava dok ne postane 5. Iako je početna vrednost broj jednaka 0, blok koda se prvo izvršava, a uslov se proverava kasnije.
Kako izgleda izlaz?
0
1
2
3
4
2. Razlika između While i Do/While
While ciklus proverava uslov pre nego što izvrši bilo koji kod, dok Do/While ciklus izvršava kod najmanje jednom pre nego što proveri uslov.
Sintaksa While ciklusa:
while (uslov) {
// Blok koda koji se izvršava
}
Primer sa While ciklusom:
let broj = 0;
while (broj < 5) {
console.log(broj);
broj++;
}
U oba primera (Do/While i While), rezultat je isti jer je početni uslov zadovoljen, ali kod Do/While ciklusa će se kod uvek izvršiti bar jednom, čak i ako je uslov inicijalno false.
Primer kada je uslov inicijalno netačan:
- Do/While:
let broj = 10;
do {
console.log(broj);
} while (broj < 5);
Kako izgleda izlaz?
10
Iako uslov nije ispunjen (broj nije manji od 5), kod unutar do bloka se izvršava jednom.
- While:
let broj = 10;
while (broj < 5) {
console.log(broj);
}
Kako izgleda izlaz?
(nema izlaza)
Kod While ciklusa, kod se neće izvršiti jer uslov nije ispunjen od početka.
3. Korisnost Do/While ciklusa
Ciklus Do/While je koristan u situacijama kada želite da se blok koda uvek izvrši barem jednom pre nego što proverite uslov. Na primer, možete koristiti Do/While ciklus za:
- Traženje unosa od korisnika dok se ne dobije validan unos.
- Prikazivanje menija i omogućavanje korisniku da bira opcije dok ne odabere opciju za izlazak.
Primer unosa korisnika:
let unos;
do {
unos = prompt("Unesite broj manji od 10:");
} while (unos >= 10);
console.log("Uneli ste: " + unos);
Ovaj ciklus nastavlja da traži unos sve dok korisnik ne unese broj manji od 10.
5. Vežba:
- Kreirajte Do/While ciklus koji će tražiti od korisnika da unese svoje ime, sve dok ne unese ime duže od 3 karaktera.
- Kreirajte While ciklus koji broji od 1 do 10 i ispisuje sve parne brojeve.