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ę |