Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - C++

C++: Pętla do-while

Pętla do-while w języku C++ jest konstrukcją, która gwarantuje, że blok kodu zostanie wykonany przynajmniej raz, niezależnie od wartości warunku początkowego. I od tej kluczowej różnicy pomiędzy pętlą while, a do-while rozpoczynamy tę lekcję.

 

Składnia pętli do-while

do {
    // Kod do wykonania
} while (warunek);

W tej strukturze, blok kodu zawarty między słowami kluczowymi do i while zostanie wykonany co najmniej raz. Po wykonaniu tego bloku, warunek znajdujący się po słowie kluczowym while jest sprawdzany. Jeśli warunek jest prawdziwy (true), pętla jest kontynuowana i kod wewnątrz do jest wykonywany ponownie. Proces ten powtarza się, dopóki warunek nie zostanie oceniony jako fałszywy (false).

 

Zastosowanie pętli do-while

Spójrzmy na przykład, w którym użyjemy pętli do-while do wczytywania danych od użytkownika, gwarantując, że użytkownik zawsze będzie miał co najmniej jedną szansę na wprowadzenie danych, nawet jeśli dane te nie spełniają pewnych kryteriów.

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

Nasz program poprosi użytkownika o wprowadzenie liczby, a pętla będzie kontynuowana, dopóki wprowadzona liczba nie będzie większa od zera.

 

W kolejnym przykładzie zobaczymy wykorzystanie pętli do-while do wygenerowania prostego menu wyboru.

char wybor;
do {
    cout << "a. Graj\n";
    cout << "b. Ustawienia\n";
    cout << "c. Wyjście\n";
    cout << "Wybierz opcję: ";
    cin >> wybor;

    if (wybor < 'a' || wybor > 'c') {
        cout << "Nieprawidłowy wybór. Spróbuj ponownie.\n";
    }

} while (wybor < 'a' || wybor > 'c');

Menu będzie wyświetlane tak długo, dopóki użytkownik nie wprowadzi jednej z opcji, znajdujących się w menu, czyli litery a, b lub c. Do tego, za każdym razem, kiedy wpisze inny znak, otrzyma na ekan komunikat, o niewłaściwym wyborze.

 

Przejdźmy do jeszcze dwóch praktycznych przykładów zastosowania pętli do-while. Pierwszym z nich będzie gra, w której musimy zgadnąć liczbę z zakresu 1-100. Będzie to losowa liczba wygenerowana w naszym programie.

int losowaLiczba = rand() % 100 + 1;
int strzal;
do {
    cout << "Zgadnij liczbę (1-100): ";
    cin >> strzal;
    if (strzal > losowaLiczba) {
        cout << "Za dużo!" << endl;
    } else if (strzal < losowaLiczba) {
        cout << "Za mało!" << endl;
    }
} while (strzal != losowaLiczba);
cout << "Gratulacje! Zgadłeś liczbę." << endl;

Funkcja rand pozwala nam wylosować liczbę. Pobierzemy następnie liczbę od użytkownika i porównamy z wylosowaną liczbą, jeśli trafił, kończymy zabawę, w przeciwnym razie, postaramy się mu trochę pomóc, mówiąc, czy podał za małą, czy za dużą liczbę.

 

W ostatnim już przykładzie poprosimy użytkownika o wprowadzenie hasła. Będziemy niezwykle uprzejmi i pozwolimy by próbował tak długo, aż trafi.

string haslo = "tajneHaslo";
string wpisaneHaslo;
do {
    cout << "Wpisz hasło: ";
    cin >> wpisaneHaslo;
    if (wpisaneHaslo != haslo) {
        cout << "Nieprawidłowe hasło, spróbuj ponownie." << endl;
    }
} while (wpisaneHaslo != haslo);
cout << "Dostęp przyznany!" << endl;

Jeśli mu się uda, otrzyma komunikat: Dostęp przyznany!

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się