Copyright 2024 - Custom text here

Lekcja 7 - Pętle (for, while,do..while)

Pętle (ang. loop) to konstrukcje językowe służące do zdefiniowania szeregu instrukcji, które będą powtarzane wielokrotnie. Poznamy trzy podstawowe rodzaje pętli:

1. for

2. while

3. do .. while. 

Pętla for

Pierwszą pętlą, którą zazwyczaj poznajemy jest konstrukcja for. W przypadku pętli for z góry powinniśmy wiedzieć ile razy instrukcje mają się wykonać. Aby zdefiniować w C++ pętlę for wykonującą się 5 razy zapiszemy:

 for(int i=1; i<=5; i++)
{
[instrukcje, które będą się powtarzać]
}

Zmienna i to liczba typu całkowitego nazywana zmienną sterująca pętlą albo iteratorem pętli.

W powyższym przykładzie w pierwszym wywołaniu pętli przypisujemy jej wartość startową i=1. W każdym przebiegu pętli inkrementujemy jej wartość (zapis i++), czyli zwiększamy o dokładnie jeden. Warunek i<=5 określa koniec iterowania (powtarzania) instrukcji. Aby najlepiej to zrozumieć, zapamiętajmy prostą regułę: pętla wykonuje się dopóki warunek w środku zwraca wartość true.

Pętla for może także zliczać w dół:

 for(int i=5; i>=1; i--)
{
[instrukcje, które będą się powtarzać]
}

Wówczas dokonujemy w każdym kroku zmniejszenia wartości zmiennej i o jeden – dekrementujemy jej wartość. Zmienił się też sprawdzany warunek, tak aby był prawdziwy tak długo, jak wartość i jest większa lub równa jeden.

Oczywiście możemy także dodawać bądź odejmować w każdym wywołaniu pętli dowolną wartość całkowitą, zamiast inkrementować lub dekrementować (czyli zmienić wartość o dokładnie jeden):

 for(int i=1; i<=10; i=i+2)
{
cout << endl << i;
}

Podobnie jak przy instrukcji warunkowej, na końcu linii definiującej pętlę nie może znajdować się średnik. Wobec tego poniższy zapis jest niepoprawny (zmieni działanie instrukcji – 10 razy wykonana zostanie pusta instrukcja (średnik), zaś linie kodu między klamrami wykonają się zawsze jeden raz):

 for(int i=1; i<=10; i=i+2); //średnik zmienił działanie programu!
{
cout << endl << i; //wykona się zawsze i to dokładnie jeden raz!
}

Pętla while, oraz do..while

Pora na pozostałe dwa rodzaje pętli. Tym razem sterowane są warunkiem, a zatem instrukcje powtarzane są wielokrotnie dopóki warunek w nawiasie jest spełniony (prawdziwy). W przeciwieństwie do pętli for nie musimy od razu definiować po ilu iteracjach pętla zakończy działanie. Różnica między pętlą while i do ..while polega na tym, iż w przypadku pętli while warunek sprawdzany jest na początku, zaś w do..while na końcu bloku instrukcji. Stąd linie kodu zawarte w pętli do..while wykonają się zawsze przynajmniej jeden raz:

Porównanie pętli

Oto składnia pętli while ukazana na przykładzie odgadywania liczby "pomyślanej" przez komputer:

 while(strzal != liczba)
{
[instrukcje realizujące odgadywanie liczby]
}

Dopóki while liczba którą wpisaliśmy z klawiatury strzal jest różna od wylosowanej przez komputer liczby liczba powtarzaj instrukcje odpowiedzialne za odgadywanie. Taka sama pętla do..while ma następującą składnię:

 do
{
[instrukcje realizujące odgadywanie liczby]
} while(strzal != liczba);

Zwróćmy też uwagę, że tym razem wymagany jest na końcu średnik. Na koniec zapamiętajmy jeszcze następującą definicję - występuje na wielu egzaminach oraz w literaturze:

Instrukcja iteracyjna
jest to każda pętla (while, do..while, for) czyli instrukcja powtarzania pewnego zestawu poleceń. Nazwa wzięła się od łacińskiego słowa iteratio, itero ("powtarzanie" w wolnym tłumaczeniu). Iteracja oznacza także pojedyncze wykonanie pętli.

 

#include <iostream>

using namespace std;

int i, a, liczba_najwieksza;

int main()
{

for (i=0; i<5; i++)
{
cout << "Podaj liczbe = ";
cin>>a;

if (i==0)
liczba_najwieksza = a;
else
{
if (a>liczba_najwieksza)
liczba_najwieksza =a;
}

cout<<"liczba największa to = "<<liczba_najwieksza;
}
return 0;
}

Karki świąteczne

  • Aleksandra Żyłkowska
    Aleksandra Żyłkowska
  • Angelika Jażewicz
    Angelika Jażewicz
  • Iwo Szostakiewicz
    Iwo Szostakiewicz
  • Julia Makar
    Julia Makar
  • Kacper Drupisz
    Kacper Drupisz
  • Kamila Gaweł
    Kamila Gaweł
  • Monika Żywiecka
    Monika Żywiecka
  • Wojciech Kierbić
    Wojciech Kierbić
  • 2019 - Karolina Kozłowska
    2019 - Karolina Kozłowska
f t g m