Pętle


Może zacznijmy od tego do czego służą pętle. Programy, które tworzyliśmy to tej pory można było wykonać tylko raz. Dzięki pętlom możemy stworzyć takie programy, które będą kończyć swoją pracę dopiero np. po wciśnięciu klawisza "Esc" lub będą mogły wykonać jakiś kod kilka razy bez jego powtarzania. Istnieje kilka rodzajów tego rodzaju instrukcji. Każda ma inną zasadę działania o nich przeczytasz już za chwilę.

Pierwszą pętlą, którą omówię jest pętla for. Poniżej zamieszczam jej schemat
for(inicjalizacja; warunek; inkrementacja)
{
  polecenia;
}
Przedstawiona powyżej instrukcja ma zastosowanie tylko wtedy, kiedy jakiś fragment chcemy wykonać dokładnie określoną liczbę razy. Jako pierwszą operację przypisujemy dowolnej zmiennej wartość początkową (inicjalizacja), później określamy warunek po którym pętla zostanie zakończona. Na samym końcu dokonujemy zwiększenia (zazwyczaj o jeden) zmiennej zadeklarowanej w inicjalizacji. Stwórzmy teraz program, który będzie numerował kolejne linie od 0 do 25:
#include 
#include 
#pragma hdrstop

int x; //deklaracja zmiennych

int main()
{
for(x = 1; x <= 25; x++)
{
cout << endl << x;
}
getch();
return 0;
}
//------------------------------------------------------
Kolejną pętlą udostępnioną w C++ jest pętla while. Jej ogólna struktura wygląda następująco:
while(warunek)
{
polecenia;
}
Warunek sprawdzany jest przed pierwszym wykonaniem pętli, dlatego znajdujące się wewnątrz funkcji polecenia mogą zostać nie wykonane ani razu. Pętla działa do momentu kiedy warunek zawraca wartość True. Jeżeli zwrócony warunek będzie negatywny program wykona instrukcje znajdujące się zaraz po pętli. Dokonajmy teraz przeróbki programu stworzonego przy omówieniu poprzedniej instrukcji (for):
#include 
#include 
#pragma hdrstop

int x; //deklaracja zmiennych

int main()
{
x = 0;
while(x < 25)
{
x =  x + 1;
cout << endl << x;
}
getch();
return 0;
}
//------------------------------------------------------
Na zakończenie, omówię ostatnią z pętli dostępnych w C++. Instrukcja do...while jest w znacznym stopniu podobna do pętli omawianej przed chwilą. Różnica pomiędzy nimi występuje tylko taka, że warunek jest sprawdzany dopiero na jej końcu. Dlatego pętla musi zostać wykonana przynajmniej raz:
do {
polecenia;
} while(warunek);
Stwórzmy teraz program który będzie pobierał o użytkownika dwie liczby i sumował je. Ten scenariusz będzie się dział aż do momentu, kiedy użytkownik wciśnie znak "S":
#include 
#include 
#pragma hdrstop

int x, y; //deklaracja zmiennych
char stop;

int main()
{
do {
cout << endl << "Podaj pierwszą liczbę: ";
cin >> x;
cout << "Podaj drugą liczbę: ";
cin >> y;
cout << "Ich suma wynosi: " << x + y;
cout << endl << "Aby zakończyć program wciśnij znak: S";
cout << endl << "w przeciwnym wypadku dowolną inną literę: ";
cin >> stop;
} while (stop != 's' && stop != 's');
return 0;
}
//------------------------------------------------------

Wróć do strony głównej