Podręcznik

5. Pętla for

Kolejnym rodzajem pętli w języku C++ jest pętla for. Omówione w poprzednich rozdziałach pętle while oraz do-while są wykorzystywane w sytuacjach gdy nie jest znana (z góry) liczba cykli. Pętla for jest wykorzystywana głównie w sytuacjach, gdy wiemy ile chcemy wykonać iteracji pętli. Instrukcja for należy do grupy instrukcji strukturalnych. Aby dokładnie zilustrować w jakim celu możemy wykorzystać pętlę for przedstawimy prosty przykład.
int n = 5;
do{
    cout << n << endl;
    n--;
}while(n=>0);
W przykładowym kodzie za pomocą pętli generowane są liczby zaczynając od wartości 5 do wartości 1. Wszystkie liczby całkowite od 5 do 1 są drukowane na konsoli. Pętla wykonuje się dokładnie 5 razy. Często w trakcie projektowania oraz implementacji aplikacji istnieje potrzeba zdefiniowania pętli, która będzie wykonywała się określoną liczbę razy. Jak widzimy możemy to zrobić przy wykorzystaniu pętli do-while. Pętla for upraszcza wykonanie tego typu operacji i została wprowadzona, aby ułatwić pracę programistów.
Pętlę typu for zapisujemy w C++ następująco:

for (inicjalizacja; warunek końca; krok)
    instrukcja;
Pętla for w języku C++ jest bardzo elastyczna, i  składa się z czterech instrukcji:
  1. Inicjalizacja to instrukcja, która jest wykonywana w momencie rozpoczynania pętli.
  2. Warunek to wyrażenie, które jest sprawdzane przed wykonaniem każdego przebiegu pętli.
  3. Instrukcja to właściwa treść pętli. Jest ona wykonywana w każdym przebiegu pętli.
  4. Krok jest instrukcją wykonywaną po wykonaniu treści pętli.
Kolejność wykonywania poszczególnych instrukcji pokazane jest na rysunku poniżej.



Wszystkie części pętli for mogą, ale nie muszą wystąpić. Konieczne jest tylko postawienie średników, które oddzielają od siebie poszczególne części. Jeśli nie występuje warunek, to traktowane jest to jak wyrażenie zawsze prawdziwe . Tak więc zupełnie prawidłowy jest zapis:
for (;;)
{
    ...
}
Taki opis oznacza, że pętla jest nieskończona. Jest odpowiednikiem pętli while lub do-while w których warunek jest zawsze spełniony.

W pętli for istnieje możliwość zastosowania wielu instrukcji w miejsce inicjacja czy krok, wystarczy oddzielić je przecinkami. Dzieje się tak dlatego, że są one traktowane jako wyrażenia, a wyrażenia można łączyć przecinkami.

Zmienna sterująca (i każda inna zmienna) zdefiniowana w pętli for jest dostępna tylko w obszarze tej pętli.
Podobnie jak w przypadku poprzednio omówionych typów pętli w treści pętli występuje tylko jedna instrukcji. Analogicznie jak poprzednio możliwe jest zastosowanie instrukcji złożonej za pomocą nawiasów klamrowych {}

Poniżej przedstawiono symulację prostej pętli for.

Wybierz wartość zmiennej n i zobacz, jak działa pętla for w C++ z animacją:

for (int i = 0; i < ...; i++) {
    cout << "i = " << i << endl;
}