Osnovne algoritamske strukture - petlje

3. Petlje u kojima broj ponavljanja ovisi o uvjetu

Postoje problemi u kojima ne možemo znati točan broj ponavljanja. Na primjer, želimo li izračunati zbroj znamenaka nekog broja, a ne znamo koliko ih taj broj ima, moramo pronaći drugi način rješavanja tog problema.
Takvih primjera ima još mnogo. Oni se rješavaju naredbama ponavljanja u kojima broj ponavljanja ovisi o uvjetu.
Petlju s provjerom uvjeta na početku u pseudojeziku možemo zapisati kako slijedi:
dok je (uvjet) činiti
    naredba (blok_naredbi).
Naredba se u ovoj petlji ponavlja sve dok je uvjet istinit. Ako je potrebno ponavljati više od jedne naredbe, one se moraju staviti u blok.

Ova se naredba uglavnom koristi kad:

  • se ne zna točan broj ponavljanja naredaba u petlji
  • ne postoji kontrolna varijabla koja se mijenja ponavljanjem
  • na izvršavanje petlje utječu neki vanjski parametri (npr. unošenje s tipkovnice).

Tijek izvršavanja bloka dok je je sljedeći:

  1. Izračunava se uvjet izvođenja (to je relacijski ili logički izraz i njegov rezultat može biti istina ili neistina).
  2. Ako je rezultat istinit, izvodi se blok_naredbi, a nakon toga se program vraća na naredbu dok je i izvodi od točke 1.
  3. Ako je rezultat neistinit, preskače se blok naredbi i program nastavlja s izvođenjem prvom naredbom iza bloka naredbi dok je.
Primjer 1.
Nakon izvođenja algoritma
k = 3
dok je (k <= 6) činiti
    k = k + 3
izlaz (k)
vrijednost ispisana na zaslonu bit će 9.

Primjer 2.
Algoritam
ulaz (broj)
br = 0
dok je broj <> 0 činiti
    br = br + 1
broj = broj div 10
izlaz (br)
klasičan je primjer beskonačne petlje. U naredbi dok je... nalazi se samo naredba br = br + 1.
To znači da će se vrijednost varijable br povećavati, no vrijednost varijable broj ostat će nepromijenjena  (nikad neće postati nula) i uvjet nikad neće postati neistinit.