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 break i continue. 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.