Pętle while
i do while
są fundamentalnymi konstrukcjami w języku C, umożliwiającymi wielokrotne wykonanie bloku kodu dopóki spełniony jest określony warunek. Obydwie te pętle służą do iteracji, jednak różnią się momentem sprawdzenia warunku: while
sprawdza warunek przed wykonaniem instrukcji w pętli, natomiast do while
wykonuje instrukcje przynajmniej raz, sprawdzając warunek dopiero po pierwszym przejściu przez pętlę.
Przykład kodu w C z użyciem pętli while
Rozpocznijmy od przykładu z pętlą while
, która będzie liczyć od 1 do podanej przez użytkownika liczby.
#include <stdio.h>
int main() {
// Deklaracja zmiennej i inicjalizacja jej wartością początkową
int limit, i = 1;
printf("Enter the limit: ");
scanf("%d", &limit);
// Pętla while wykonuje się dopóki i jest mniejsze lub równe limitowi
while (i <= limit) {
printf("%d ", i);
i++; // Inkrementacja i po każdym przejściu przez pętlę
}
return 0;
}
Przykład kodu w C z użyciem pętli do while
Następnie zobaczmy przykład z pętlą do while
, która będzie prosić użytkownika o wprowadzenie liczby dodatniej, powtarzając prośbę do momentu podania takiej liczby.
#include <stdio.h>
int main() {
// Deklaracja zmiennej
int number;
do {
printf("Enter a positive number: ");
scanf("%d", &number);
// Pętla do while wykonuje się dopóki podana liczba jest mniejsza lub równa zero
} while (number <= 0);
printf("You entered: %d\n", number);
return 0;
}
W powyższym przykładzie, instrukcje wewnątrz pętli do while
wykonują się przynajmniej raz, niezależnie od wartości początkowej zmiennej number
, co oznacza, że użytkownik zawsze zostanie poproszony o wprowadzenie liczby, nawet jeśli od razu poda liczbę spełniającą warunek.
Podsumowanie
Pętle while
i do while
są niezwykle użytecznymi konstrukcjami języka C, pozwalającymi na efektywną iterację w programach. Kluczową różnicą między nimi jest moment sprawdzenia warunku kontynuacji pętli: przed pierwszą iteracją w przypadku while
i po pierwszej iteracji w przypadku do while
. Dzięki temu programista może wybrać odpowiednią pętlę w zależności od wymagań logiki programu, zapewniając odpowiednią kontrolę przepływu i efektywność działania aplikacji.