While je naredba kontrole toka i petlja poput for petlje. Suštinski između ove
dvije petlje nema razlike, sem što se savjetuje for za upotrebu.
Upotreba:
while (uslov)
{
/* Naredba(e). */
/* Korak. */
}
Primjer:
#include <stdio.h>
int x = 0;
main()
{
while (x < 10)
{
printf("%d ", x);
x++;
}
return 0;
}
0 1 2 3 4 5 6 7 8 9
While petlja može sve isto što i for petlja. Evo ekvivaletnih primjera, za
uvećavanje za 1:
int x;
for (x = 0; x < 10; x++)
{
/* Naredba(e). */
}
int x = 0;
while (x < 10)
{
/* Naredba(e). */
x++;
}
za uvećavanje za neki broj (3):
int x;
for (x = 0; x < 10; x += 3)
{
/* Naredba(e). */
}
int x = 0;
while (x < 10)
{
/* Naredba(e). */
x += 3;
}
za umanjivanje (za 1):
int x;
for (x = 10; x > 0; x--)
{
/* Naredba(e). */
}
int x = 10;
while (x > 0)
{
/* Naredba(e). */
x--;
}
za ispunjavanje potrebnog uslova:
int x;
for (; x != 5;)
{
/* Naredba(e). */
}
int x;
while (x != 5)
{
/* Naredba(e). */
}
za beskonačnu petlju:
for (;;)
{
/* Naredba(e). */
}
while (5 == 5)
{
/* Naredba(e). */
}
i za gniježdenje:
int x, y;
for (x = 0; x < 10; x++)
{
for (y = 0; y < 10; y++)
{
printf("%d ", y);
}
printf("\n");
}
int x, y;
x = 0;
while (x < 10)
{
y = 0;
while (y < 10)
{
printf("%d ", y);
y++;
}
printf("\n");
x++;
}
I while petlja može bez bloka (samo jedna naredba), ali samo pod uslovom da
nemate korak, kao u primjerima za ispunjavanje potrebnog uslova i beskonačnu
petlju. Ne preporučuje se ovakva upotreba, zbog smanjene čitljivosti.
int x;
while (x != 5)
printf("Nije!");
Kao kod if/else naredbe, i kod while je se uslov može postaviti ovako:
int x;
while (!x) /* x == 0 */
{
/* Naredbe. */
}
Ovo se naravno, kao i kod if/else, ne preporučuje.
Kod gniježdenja petlji, bilo to da je for-for, while-while, for-while ili
while-for, često se griješi. Dešava se da se koristi ista varijabla i u vanjskoj
i unutrašnjoj petlji. Fatalna greška!
int x;
for (x = 0; x < 10; x++)
{
x = 0;
while (x < 10)
{
printf("%d ", x);
x++;
}
printf("\n");
}
Poslije while uslova ne dolazi tačka-zarez!
while (x < 10);
Preporuka: Ovdje možete pronaći pripremljene
zadatke za vježbanje while petlje.
Zadaci III nivo - Zadaci IV nivo
|