Petlja do-while se rabi ako broj ponavljanja petlje nije unaprijed poznat, nego ovisi o ispunjenju zadanog uvjeta.
Osnovni oblik petlje do-while je:
do
{
blok naredbi
}
while (uvjet);
Glavno obilježje petlje do-while je izvođenje bloka naredbi petlje bar jedanput neovisno o istinitosti uvjeta jer se uvjet ispituje nakon izvođenja bloka naredbi petlje. U tome je i osnovna razlika petlje do-while u odnosu na petlje for i while kod kojih se može dogoditi da se blok naredbi ne izvede nijedanput.

|
Zadatak:
|
Treba unijeti N prirodnih brojeva (N nije unaprijed poznat!) pa pronaći i ispisati najveći uneseni broj. Nakon posljednjeg broja treba unijeti 0. Ispis neka bude oblika:
Nakon posljednjeg broja unesi nulu.
Unesi prirodni broj:
Unesi prirodni broj:
...
Najveci broj je ... |
-
Na početku programa, prije petlje, od korisnika se očekuje unos prvog broja b.
-
Potom valja pretpostaviti da je prvi uneseni broj najveći. Pretpostavlja se tako da se broj b pohrani u varijablu max (max=b).
-
Petlja će se ponavljati sve dok se unose brojevi veći od 0. Zato je uvjet: while(b>0).
-
U petlji se mora dokazati ili odbaciti pretpostavka da je u varijablu max pohranjen trenutno najveći broj (if(b>max)). Ako uvjet nije ispunjen, unosi se novi broj, a ako je, varijabla max dobiva vrijednost trenutno najvećeg broja a potom se unos nastavlja.
-
Po unosu broja 0, petlja završava. Najveći broj je pohranjen u varijabli max.
Rješenje:
|
#include<iostream>
using namespace std;
int main()
{
int b,max;
cout<<endl<<"Nakon posljednjeg broja unesi 0. Unesi prirodni broj: ";
cin>>b;
max=b;
do
{
if(b>max)
{
max=b;
}
cout<<"Unesi prirodni broj: ";
cin>>b;
}
while(b>0);
cout<<endl<<"Najveci broj je: "<<max<<endl;
return 0;
}
|
Rezultat:
|
Nakon posljednjeg broja unesi nulu.
Unesi prirodni broj: 85
Unesi prirodni broj:14
Unesi prirodni broj:396
Unesi prirodni broj:384
Unesi prirodni broj:0
Najveci broj je 396
|
|
|