Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - C++

C++: Pętla while

Kolejnym przykładem pętli w języku C++ jest while. Składa się ona z dwóch głównych elementów: słowa kluczowego while oraz warunku w nawiasach, po którym następuje blok kodu do wykonania.

while (warunek) {
    // Blok kodu do wykonania
}

Warunek: Jest to wyrażenie logiczne, które jest oceniane przed każdą iteracją pętli. Jeśli warunek jest prawdziwy (true), pętla kontynuuje swoje działanie.

Blok kodu: To jest część kodu, która ma być wykonana przy każdej iteracji pętli. Blok kodu umieszcza się w nawiasach klamrowych { }.

Możesz mieć tu skojarzenie z instrukcją warunkową if. I bardzo słusznie. While to taki wielokrotnie wykonujący się if.

 

Zastosowanie pętli while

Spójrzmy na pierwszy przykład. Będzie to prosta pętla while, która ma za zadanie wypisać na ekran numer iteracji.

int i = 0;
while (i < 5) {
    cout << "Iteracja numer: " << i << endl;
    i++;
}

Jak widzisz, występują tu dokładnie te same elementy co w pętli for. Są natomiast umieszczone w innych miejscach. I tak inicjalizacja zmiennej, która będzie naszym iteratorem. Umiejscowienie warunku jest natomiast podobne - znajduje się on pomiędzy nawiasami okrągłymi. Zmiana wartości naszej zmiennej sterującej pętlą odbywa się natomiast wewnątrz bloku instrukcji. Zawyczaj na jego końcu.

W naszym przykładzie wypiszemy na ekran kolejne linie z numerem iteracji. Numer ten osiągnie kolejno wartości: 0, 1, 2, 3 oraz 4.

 

Przejdźmy do drugiego przykładu. Niech będzie zupełnie inny od standardowego wykorzystania pętli while.

char c;
while (cin >> c && c != 'q') {
    cout << "Wciśnięto znak: " << c << endl;
}

Nasz program rozpoczyna się deklaracją zmiennej c typu znakowego. Następnie w pętli w warunku wczytujemy znak od użytkownika, oraz sprawdzamy czy znakiem tym nie było q, które kończyłoby nam pętlę. Jeśli był to jakikolwiek inny znak, wypisujemy go na ekran.

Oto przykładowy wygląd okna konsoli po uruchomieniu takiego programu:

 

To może jeszcze bardziej standardowy przykład. Napiszmy program, który obliczy sumę 10 liczb wprowadzonych przez użytkownika:

#include <iostream>
using namespace std;

int main() {
    int suma = 0;
    int liczba;
    int licznik = 0;

    cout << "Wprowadź 10 liczb, aby obliczyć ich sumę:" << endl;

    while (licznik < 10) {
        cout << "Wprowadź liczbę " << (licznik + 1) << ": ";
        cin >> liczba;
        suma += liczba;
        licznik++;
    }

    cout << "Suma wprowadzonych liczb to: " << suma << endl;

    return 0;
}

I tak kolejno. Zmienna suma będzie służyła nam do przechowywania obliczanej na bieżąco sumy, jej wartością początkową będzie 0. Do zmiennej liczba wczytywać będziemy od użytkownika liczby. Licznik natomiast będzie naszą zmienną sterującą pętlą. 

Rozpoczynamy pętlę while. Dopóki licznik jest mniejszy od 10, wykonujemy następujące czynności:

  • wypisanie użytkownikowi komunikatu, którą liczbę od niego wczytujemy
  • wczytanie liczby od użytkownika
  • dodanie wczytanej liczby do dotychczas obliczonej zmiennej suma
  • zwiększenie licznika o 1

W ten sposób, po 10 obiegach pętli otrzymamy wyliczoną sumę wszystkich liczb.

 

Nieskończona pętla while

Podobnie jak pętla for, pętla while też może być nieskończona. Wystarczy, że jej warunek będzie stale prawdziwy: 1 lub true.

 

Zobaczmy to na przykładzie:

while(1){
    cout<<"Wprowadz wartość a:\n";
    int a;
    cin>>a;
 
    if(a == 1) break;
        cout<<"tekst po break`u\n";
 
    if(a == 2) continue;
        cout<<"tekst po continue\n";
 
    if(a == 3) exit(0);
    
cout<<"no i cos na koniec − tylko jesli a bylo rozne od 1, 2, 3\n\n"; } cout<<"Wyszedłem z pętli\n";

W naszym przykładzie użytkownik proszony jest o wczytanie zawartości zmiennej a. 

Jeżeli wprowadzi 1, wykona się instrukcja break i zakończy pętlę. Instrukcja wypisująca tekst po breaku się nie wykona. Wypisze się natomiast na ekran informacja: Wyszedłem z pętli.

Jeżeli wprowadzi 2, wykona się instrukcja continue i przejdzie do kolejnego obiegu pętli. Pominie wszystkie instrukcje występujące po niej.

Jeżeli wprowadzi 3, wykona się instrukcja exit, kończąca program.

No i wreszcie, jeżeli wprowadzi cokolwiek innego - wypiszany zostanie tekst "no i coś na koniec...", po czym użytkownik zostanie ponownie poproszony o wprowadzenie wartości a.

 

 

 

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