Programska petlja while
1. Petlja while
1.3. Primjer 3.
Bez upisivanja programa odgovorite na pitanje: Kada se ovaj program izvrši, što će se ispisati na zaslonu?
#include <stdio.h>int main()
{
int i=1,s=0;
while(i<=5)
{
s+=i;
i+=2;
}
printf("\nTrazeni zbroj je %d",s);
return 0;
}
Rješenje
Na zaslonu će se ispisati: „Trazeni zbroj je 9“. Zašto?
1. korak
Vrijednost kontrolne varijable i je 1. Pri prvom ulasku u petlju while, provjerava se uvjet. S obzirom na to da je uvjet istinit (vrijedi da je 1 <= 5), izvršava se blok naredbi unutar naredbe while. Vrijednost varijable s uvećava se za 1 (1 je vrijednost varijable i) pa postaje 1. Nakon toga vrijednost varijable i uvećava se za 2 i postaje 3.
2. korak
Sada se program vraća na provjeravanje uvjeta 3 <= 5 i uvjet je zadovoljen. Vrijednost varijable s postaje 4 (prethodna vrijednost varijable s (1) uvećana za vrijednost varijable i (3)), a vrijednost varijable i ponovno se uvećava za 2 i postaje 5.
3. korak
Tijekom ponovne provjere uvjeta vrijednost kontrolne varijable je 5, pa je uvjet još istinit (5 <= 5). Izvršavanjem bloka naredbi unutar while, vrijednost varijable s postaje 9 (5 + 4), a vrijednost kontrolne varijable je 7 (5 + 2).
4. korak
Povratkom na provjeru uvjeta pokazuje se da uvjet više nije istinit (7 > 5) i izvršavanje programa nastavlja se sljedećom naredbom nakon bloka while. U našem je slučaju to naredba za ispis vrijednosti varijable s. Dakle, na zaslonu će se ispisati „Trazeni zbroj je 9“.