« Pętla while, lekcja »
Rozdział 31. Omówienie pętli while. (lekcja)
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!
Autor: Piotr Szawdyński
Kurs C++

Pętla while

[lekcja] Rozdział 31. Omówienie pętli
while
.

Wprowadzenie

Niniejszy rozdział w kontekście tego co już wiesz (a przynajmniej powinieneś wiedzieć) będzie dla Ciebie niczym innym jak formalnością. Wiesz już bowiem czym są pętle, jak się ich używa oraz jakie mają one zastosowanie w programowaniu. Aby jednak formalnie domknąć podstawy związane z pętlami, wymagane jest omówienie trzeciego rodzaju pętli tj. pętli
while
.

Składnia

Jak zwykle dobrym punktem wyjściowym jest zapoznanie się ze składnią nowo poznawanych rzeczy, czyli w tym wypadku ze składnią pętli
while
. Oto ona:
C/C++
while( /* warunek kończący pętlę */ )
{
    //powtarzany blok instrukcji
}
lub tradycyjnie:
C/C++
while( /* warunek kończący pętlę */ )
     jedna_instrukcja(); //jedna powtarzana instrukcja

Dopóki warunek jest spełniony (czyli wartość logiczna wynosi true) dopóty pętla będzie powtarzała instrukcję (lub blok instrukcji) występujący bezpośrednio po słowie kluczowym while.

Blok instrukcji umieszczony w pętli while może się więc nie wykonać ani razu jeżeli wartość logiczna warunku przy pierwszym wejściu w pętlę będzie fałszywa. Jest to kluczowa, a zarazem jedyna różnica pętli while od pętli do ... while.

Przykład

Tradycyjnie po krótkim wprowadzeniu teoretycznym, czas na przykład jego analizę. Oto przykład zastosowania pętli
while
:
C/C++
#include <iostream>

void odliczanie( int iStart )
{
    while( iStart >= 0 )
    {
        std::cout << iStart << ", ";
        --iStart;
    } //while
    std::cout << "Booom! :)" << std::endl;
}

int main()
{
    odliczanie( 10 );
    odliczanie( - 100 );
    odliczanie( 5 );
    return 0;
}
Standardowe wyjście programu:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, Booom! :)
Booom! :)
5, 4, 3, 2, 1, 0, Booom! :)
Przykład jak widać jest prosty, a wręcz trywialny. Program nic mądrego nie robi ale najważniejsze, że pokazuje jak działa pętla while. Zgodnie z tym co zostało wcześniej napisane, pętla wykonywała się dopóki warunek
iStart >= 0
 był spełniony.

Praktyczne zastosowanie pętli while

Pętlę while w praktyce stosuje się zawsze tam, gdzie mamy potrzebę przetwarzania nieokreślonej liczby danych. Przykłady:
  • chcesz wczytać dane do tablicy, ale liczbę wprowadzanych danych podaje np. użytkownik;
  • chcesz odczytać sekwencyjnie zawartość całego pliku;
  • chcesz zakończyć pętlę np. tylko wtedy gdy zostanie wciśnięty określony klawisz (przydatne np. w grach).

Podsumowanie

Pętla while nie jest w niczym lepsza od wcześniej poznanych pętli. W praktyce więc, można sprawnie pisać swoje aplikacje nie używając wspomnianej pętli. Pamiętaj jednak, że różnorodność narzędzi pozwala pisać programiście kod krótszy i czytelniejszy, do czego mimo wszystko powinieneś dążyć.

Zadanie domowe

  • Przepisz funkcję o nazwie 'zakres' tak, aby używała pętli while zamiast pętli for. Przepisana funkcja musi wypisywać dokładnie te same wyniki. Kod źródłowy, który należy zmodyfikować:
    C/C++
    #include <iostream>

    void zakres( int x, int y )
    {
        for( int i = x; i <= y; ++i )
             std::cout << i << ", ";
       
        std::cout << "koniec" << std::endl;
    }

    int main()
    {
        zakres( 1, 5 );
        zakres( 8, - 1 );
        zakres( 10, 10 );
        return 0;
    }
Poprzedni dokumentNastępny dokument
Zagnieżdżanie pętliPoziom 4