Petlja repeat

     

 

Uz petlju while imamo još jednu uvjetnu petlju. To je petlja repeat.

Petlja repeat uvjet ponavljanja provjerava na kraju petlje što znači da će se naredbe u petlji izvršiti barem jedanput. Za razliku od while koja ponavlja naredbe u petlji sve dok je uvjet istinit, petlja repeat ponavlja naredbe sve dok uvjet ne postane istinit (dakle, dok je lažan).

Opći oblik naredbe repeat je:

repeat

   naredba;

until uvjet;

ili

repeat

   blok_naredbi;

until uvjet;

Primijetite da repeat ne zahtjeva pisanje ključnih riječi begin i end. Dijagram tijeka za repeat petlju izgleda ovako:

Svi zadaci koje rješavamo naredbom for možemo riješiti i s naredbom repeat, ali obrnuto ne vrijedi. Također sve zadatke koje možemo riješiti sa while možemo riješiti i sa repeat samo je u nekim slučajevima praktičnije upotrijebiti jednu, a u drugima drugu petlju.

Primjer 1:

Učitavajte cijele brojeve dok se ne učita 0. Ispišite koliko je brojeva učitano i kolika je srednja vrijednost učitanih brojeva.

Napomena

Ovaj zadatak je jednostavnije riješiti sa repeat petljom jer se mora učitati bar jedan broj (moguće je da prvi učitani broj bude 0 i da se naredbe u petlji više ne trebaju ponavljati). Ako bi upotrijebili while prvi broj bi morali učitati prije ulaska u petlju, jer se uvjet provjerava na početku. 
Ovako bi izgledao taj dio programa:

n:=0;

s:=0;

write('Unesi 1. broj');

readln(br);

while (br<>0)do

begin

     s:=s+br;

      inc(n);

end;

Sa repeat petljom rješenje je:

U sljedećoj lekciji riješite još nekoliko zadataka uporabom petlje repeat.