Wygląd pętli while:
while(warunek) { //Dalsza część }
Pętla ta będzie się wykonywać dopóki warunek wpisany w nawiasie będzie prawdziwy. Nie zostanie wykonana nawet raz, w przeciwieństwie do pętli for, jeżeli warunek nie zostanie spełniony.
Przykładowy prosty program przedstawiam poniżej. Będzie się on wykonywał dopóki wartość w zmienna będzie mniejsza od liczby 10.
#include <stdio.h> #include <stdlib.h> int main() { int zmienna = 0; while(zmienna < 10) { printf("Zmienna wynosi: %d\n", zmienna); zmienna++; } return 0; }
Drugi przykład działa podobnie z tym, że obsługuje dodatkowy warunek.
#include <stdio.h> #include <stdlib.h> int main() { int zmienna = 0; char znak = 65; while((zmienna < 10) && (znak <= 70)) { printf("Zmienna wynosi: %d\n", zmienna); printf("Znak: %c\n", znak); zmienna++; znak++; } return 0; }
Można też wykorzystać dodatkowe instrukcje takie jak continue czy break,
Instrukcja Continue pozwala na ponowne wykonanie iteracji. W przypadku programu poniżej operacje będą powtarzane bez końca, ponieważ wartości zwiększające określone zmienne znajdują się po słowie continue, co oznacza, że w momencie osiągnięcia przez zmienną znak wartości 70, pętla nie otrzymuje dostępu do komend zmienna++ oraz znak++, ponieważ przed nimi wraca na początek pętli while.
#include <stdio.h> #include <stdlib.h> int main() { int zmienna = 0; char znak = 65; while((zmienna < 10) && (znak <= 70)) { printf("Zmienna wynosi: %d\n", zmienna); printf("Znak: %c\n", znak); if(znak==70) continue; zmienna++; znak++; } return 0; }
Break służy do przerwania wykonywania kolejnej pętli, nawet jeśli warunek jest spełniony.
#include <stdio.h> #include <stdlib.h> int main() { int zmienna = 0; char znak = 65; while((zmienna < 10) && (znak <= 70)) { printf("Zmienna wynosi: %d\n", zmienna); printf("Znak: %c\n", znak); if(znak==67) break; zmienna++; znak++; } return 0; }