Kurs C++: Pętle i Iteracje

Pętla do...while w C++ jest specyficzną konstrukcją pętli, która gwarantuje wykonanie ciała pętli co najmniej raz, niezależnie od tego, czy warunek jest spełniony. To kluczowa cecha odróżniająca ją od pętli while i for.


1. Składnia pętli do...while

do {
    // Instrukcje wykonywane co najmniej raz
} while (warunek);

do – słowo kluczowe oznaczające początek pętli.

Ciało pętli – blok instrukcji, który zostanie wykonany co najmniej raz.

while (warunek) – po zamknięciu klamry }, sprawdzany jest warunek kontynuacji pętli. Jeśli warunek jest true, pętla działa dalej. Jeśli jest false, pętla kończy działanie.

Średnik (;) – po while(warunek) zawsze musi znajdować się średnik.

Przykład podstawowy – wykonanie co najmniej raz

#include <iostream>
using namespace std;

int main() {
    int liczba;

    do {
        cout << "Podaj liczbę większą od zera: ";
        cin >> liczba;
    } while (liczba <= 0);

    cout << "Dziękuję! Podałeś liczbę: " << liczba << endl;

    return 0;
}

Działanie:

  • Program prosi o podanie liczby większej od zera.
  • Nawet jeśli użytkownik od razu poda liczbę spełniającą warunek, ciało pętli i tak wykona się co najmniej raz.
  • Pętla będzie działać do momentu, aż użytkownik poda poprawną wartość.

3. Różnice między do...while a while

CechaPętla do...whilePętla while
Wykonanie co najmniej raz✅ Tak❌ Nie zawsze
Położenie warunkuNa końcu pętliNa początku pętli
PrzydatnośćIdealna, gdy ciało musi wykonać się co najmniej razLepsza przy warunkach, które mogą być od razu fałszywe

4. Typowe zastosowania pętli do...while

✅ Pobieranie danych od użytkownika aż do spełnienia warunku (np. poprawne hasło).
✅ Powtarzanie menu w aplikacji aż do wybrania opcji “Zakończ”.
✅ Tworzenie gier, w których gracz ma powtarzać akcję do momentu wygranej lub porażki.


5. Pułapki i błędy w pętli do...while

🔹 Zapomnienie o średniku po while(warunek); — to częsty błąd początkujących.
🔹 Niepoprawny warunek może prowadzić do nieskończonej pętli.
🔹 Nieprzewidziane dane wejściowe (np. litery zamiast liczb) mogą powodować błędy — warto dodać mechanizmy obsługi błędów.