W języku programowania C, podobnie jak w wielu innych językach, istnieje kilka struktur pętli. Pierwsza zostanie omówiona pętla while. Pętla ta ma ogólnie postać:
while (Exp) Insgdzie Exp jest pewnym wyrażeniem, a Ins instrukcją prostą lub złożoną.
Instrukcja Ins jest wykonywana tak długo, jak długo wyrażenie Exp reprezentuje daną o wartości różnej od zera. Algorytm postępowania jest następujący:
Załadujmy program przykładowy while.c. Widzimy znane elementy programu takie jak komentarze i dyrektywy preprocesora, a następnie definicję funkcji main. Jej ciało rozpoczyna definicja zmiennej o nazwie licznik. Zmienna ta jest przed wejściem w pętle while wyzerowana. Najistotniejsza dla nas konstrukcja rozpoczyna się od słowa while, za którym w nawiasach okrągłych pojawia się jakieś wyrażenie. Za tą linią (nie jest ona zakończona średnikiem) znajduje się ujęte w klamry ciało pętli. Składa się ono z funkcji printf oraz instrukcji zwiększającej o jeden wartość zmiennej licznik.
Tak długo, jak wyrażenie w nawiasach okrągłych jest prawdziwe wszystkie zdania wewnątrz klamer będą wykonywane. Za pierwszym wejściem w pętle licznik wynosi zero, co jest mniejsze od sześciu, zatem pętla się wykona. Za drugim razem licznik wynosi jeden, bowiem ostatnią instrukcją (wykonaną we wcześniejszym obiegu) była inkrementacja wartości zmiennej o jeden. W tym przypadku pętla też się wykona, bowiem zmienna nadal jest mniejsza od sześciu. W końcu jednak osiągnie ona wartość sześciu i wyrażenie licznik < 6 będzie fałszywe - pętla nie rozpocznie się, a wykonywanie programu będzie kontynuowane od pierwszej instrukcji za ciałem pętli.
Przy instrukcji while należy zwrócić uwagę na możliwe sytuacje:
while (getchar() = '\n');
Nigdy nie kończący się program z wypunktowanymi powyżej sytuacjami przedstawia program while02.c. Dodatkowo można w nim znaleźć jedną pętle zagnieżdżoną w drugiej.