Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Pętla jest konstrukcją programistyczną, która umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność. Pętla for, którą się zajmujemy, należy do grupy pętli iteratywnych. Istnieją jeszcze inne rodzaje pętli, m.in. warunkowe, jednak zostaną one omówione w innych rozdziałach.

Oznacza to, że pętla wykonuje instrukcje w niej zawarte ustaloną liczbę razy.

Przykład w pseudokodzie

Pętla for zapisana w pseudokodzie:

Linia 1. dla i znak równości 1 przecinek 2 przecinek kropka kropka kropka przecinek 100 wykonuj. Linia 2. wypisz i.

W przedstawionym przykładzie pętla for wykona się 100 razy, a przy każdej iteracjiiteracjaiteracji wypisze wartość zmiennej i. Kolejne wartości będą wyglądać następująco: 1 2 3 4 5 6 7 8 ... 100

Budowa pętli for

Zazwyczaj deklaracja pętli for składa się z trzech elementów. Pierwszym z nich jest zmienna sterująca, używana w pętli for jako licznik wykonanych do tej pory iteracji. Nazwa tej zmiennej jest dowolna, natomiast powszechnie przyjęta zasada sugeruje użycie litery i. Dla kolejnych, zagnieżdżonych pętlizagnieżdżone pętlezagnieżdżonych pętli używamy następnych liter alfabetu (i, j, k...).

Zadaniem drugiej części pętli for jest sprawdzenie, czy warunek wykonania pętli nadal jest spełniony. Jest to wyrażenie logiczne, które kontroluje, czy pętla wykonała się już określoną liczbę razy. Wyrażenie to jest sprawdzane przed każdą iteracją – jeżeli zwróci wartość logiczną false, działanie pętli zostaje zakończone, a program wykonuje dalsze instrukcje.

Ostatnim elementem pętli jest modyfikacja wartości zmiennej sterującej: możemy w ten sposób określić, o ile wartość zmiennej sterującej ma się zmienić po każdej iteracji. Zazwyczaj wartość ta wynosi jeden. Gdy ustalimy, że zmienna ma być zwiększana o jeden z każdą iteracją, wówczas mówimy o inkrementacjiinkrementacjainkrementacji. W odwrotnym przypadku, gdy wartość zmiennej sterującej ulega zmniejszeniu o jeden, mamy do czynienia z dekrementacjądekrementacjadekrementacją.

Ważne!

Należy zawsze upewnić się, że warunek pozwalający programowi na wyjście z pętli jest możliwy do osiągnięcia. W przeciwnym wypadku pętla staje się pętlą nieskończonąnieskończona pętlapętlą nieskończoną i program – po natrafieniu na taką pętlę – może ulec zawieszeniu czy przerwaniu.

Ważne!

Zazwyczaj pętla for z każdą iteracją dodaje jakąś wartość do zmiennej sterującej, aż ta osiągnie wartość wymaganą do opuszczenia pętli. Ponieważ jednak zmienna sterująca może zmieniać wartość o dowolną liczbę, możliwa jest sytuacja, w której wartość zmiennej jest zmniejszana z każdą iteracją – nasza pętla skończy działanie, gdy wartość zmiennej sterującej spadnie poniżej pewnej określonej liczby.

Pętla for w praktyce

Aby lepiej zrozumieć działanie pętli for, spróbujmy użyć jej w praktyce. Wyobraźmy sobie, że mamy zbiór 20 liczb całkowitych od 0 do 19 i musimy wypisać tylko te, których reszta z dzielenia przez 5 wynosi 0. Zadanie to jest możliwe do rozwiązania w pamięci – zbiór rozwiązań będzie miał tylko cztery elementy. Kiedy jednak zwiększymy liczbę elementów w zbiorze do 2000, ręczne szukanie wartości może okazać się bardzo czasochłonne. Dlatego też w celu rozwiązania przedstawionego problemu napiszemy algorytm w postaci pseudokodu:

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 19 wykonuj. Linia 2. jeżeli i mod 5 znak równości 0 to. Linia 3. wypisz i.

Program sprawdza kolejne liczby z zakresu od 0 do 19 i bada, czy reszta z dzielenia przez 5 (operator mod) każdej z liczb z tego zakresu jest równa 0. Jeżeli tak jest, liczba ta zostaje wypisana.

Rozwiązanie to można również przedstawić w postaci schematu blokowego. Dzięki temu będzie wiadomo, co dzieje się w naszej pętli for.

RZ69XdNwMTT7S

Spróbuj samodzielnie przeanalizować, co dzieje się na każdym etapie przetwarzania tego schematu blokowego. Na następnej stronie znajdziesz szczegółową analizę bardzo podobnego schematu blokowego pętli for.

Słownik

iteracja
iteracja

pojedyncze wykonanie poleceń zawartych w pętli

inkrementacja
inkrementacja

zwiększenie wartości zmiennej o jeden

dekrementacja
dekrementacja

zmniejszenie wartości zmiennej o jeden

zagnieżdżone pętle
zagnieżdżone pętle

wywołanie pętli wewnątrz innej pętli

nieskończona pętla
nieskończona pętla

pętla, która nigdy nie zostanie zakończona, ponieważ warunek wyjścia z pętli nigdy nie zostaje spełniony