Pętla while

Pętla while

Ta pętla jest jedną z najpopularniejszych i najbardziej elastycznych. W odróżnieniu od for nie musimy określać ile razy się wykona. Składa się ona z dwóch elementów słowa kluczowego while i warunku kończącego w nawiasach okrągłych.  Pętla wykonuje się dopóki wartość logiczna warunku jest prawdziwa. W tej części omówimy również inną pętle do…while. Na początku bardzo prosty przykład użycia.

#include <iostream>
 
using namespace std;
int main()
{
    int n=0;
    while(n<5) //warunek
    {
        n++;
        cout<<n<<endl; //wypisanie zmiennej n
    }
 
    return 0;
}v

W odróżnieniu od for inkrementacje zmiennej (zwiększanie o jeden n++) wykonujemy w ciele pętli a nie w nawiasach okrągłych. Widzisz jakie to proste?

#include <iostream>
 
using namespace std;
int main()
{
    cout<<"Podaj 5 liczb"<<endl;
    int liczba, i = 0, suma = 0; //tworzymy dwie zmienne int
    float srednia; //tworzymy zmienną ułamkową
    while(i<5) //warunek
    {   
        i++; //inkrementacja zmiennej
        cout<<i<<" "; //wypisujemy zmienną i 
        cin>>liczba;
        suma = suma + liczba; //sumujemy pobrane wartości
    }
    srednia = suma / 5.0; //obliczamy średnią
    cout<<"Srednia wynosi "<<srednia; //wyświetlamy zmienną float 
 
    return 0;
}

Ten fragment kodu jest z poprzedniej lekcji. Aby go przerobić na pętle while wystarczyło dopisać jedną linijkę a mianowicie i++ oraz stworzyć zmienną na początku programu. Warunek należy czytać w ten sposób. Wykonuj dopóki prawdą jest (i mniejsze od 5). Przytaczanie kolejnych fragmentów kodu nie mam sensu. Jeżeli masz ochotę w ramach ćwiczeń sam możesz to zrobić. Pętla while jest dużo łatwiejsza w użyciu od for więc nie poświęcimy jej tyle czasu. Na koniec pokaże jak zrobić nieskończoną pętle czego oczywiście nie należy robić.

#include <stdio.h>

int main()
{
    while(1)
    {
        printf(":c ");
    }

    return 0;
}

Oczywiście w okrągłych nawiasach może być cokolwiek co będzie różne od 0. Uzyskamy wówczas ten sam efekt. Tak samo można to uzyskać w do…while.

Pętla do…while

Jest to trzeci typ pętli jaki możemy spotkać w języku C. Jedyna różnica jest taka że ta pętla wykonuje się zawsze co najmniej raz. Spójrz jak to wygląda w praktyce.

#include <stdio.h>
 
int main()
{
    int k, x=0;
    printf("0 kończy program\n");
    do
    {
        printf("Niezależnie od k ten napis pojawi się zawsze");
        printf("\nPodaj k: ");
        scanf("%d", &k);
    }while(x!=k);
    printf("KONIEC");
    return 0;
}

Warto zwrócić uwagę na to po klamrze zamykającej ciało pętli znajduje się słowo while a tam w nawiasach okrągłych warunek. Najbardziej zaskakujące jest jednak to że za nim jest średnik i o tym należy zawsze pamiętać.

Podsumowanie

Pamiętaj aby w ciele pętli robić krok który zbliża zmienną do warunku kończącego. Nie zależnie od tego jakiej pętli używasz programując każda z nich obsługuje instrukcje breakcontinue. Warto abyś o tym wiedział i miał świadomość że to od Ciebie zależy z jakiej skorzystasz. Każda działa w ten sam sposób różnią się pewnymi drobiazgami.