Uvod u C   Autor: Milan Miščević
 
Jezik
Istorijat
C++
Kompajler
Razvojni ciklus
Hello.c
Greške
Komentari
Varijable
Printf i scanf
Include i main
Zbir.c
Konstante
Naredbe i izrazi
Operatori I
Zadaci I nivo
Operatori II
If/else
Zadaci II nivo
For
Zadaci III nivo
While
Zadaci IV nivo
Funkcije
Zadaci V nivo
Nizovi
Zadaci VI nivo
Zadaci
Rječnik
Literatura

abc C
  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