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);
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:for (inicjalizacja; warunek końca; krok)
instrukcja;
- Inicjalizacja to instrukcja, która jest wykonywana w momencie rozpoczynania pętli.
- Warunek to wyrażenie, które jest sprawdzane przed wykonaniem każdego przebiegu pętli.
- Instrukcja to właściwa treść pętli. Jest ona wykonywana w każdym przebiegu pętli.
- Krok jest instrukcją wykonywaną po wykonaniu treści pętli.
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 (;;)
{
...
}
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; }