Pętle - jak rozpocząć?

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

Przykład pętli for zapisanej 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 iteracji 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ę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 inkrementacji. W odwrotnym przypadku, gdy wartość zmiennej sterującej ulega zmniejszeniu o jeden, mamy do czynienia z dekrementacją.

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ą 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.

Polecenie 1

Przeanalizuj animację, w której przedstawiono kilka przykładów użycia pętli licznikowej.

RKguS8Fa5TZKK
Film nawiązujący do treści pętli iteracyjnych.

Iteracja i pętla for

Na filmie przedstawiono działanie pętli for. Zapoznaj się z filmem, a następnie napisz krótkie programy zapisane w poleceniach 1 i 2. Przed przystąpieniem do ćwiczeń możesz jako podsumowanie przeczytać materiał ukryty pod przyciskiem Zapoznaj się z materiałem

RNXUC33NR2GSN
Film nawiązujący do treści materiału
Zapoznaj się z materiałemredwhite
Polecenie 2

Napisz program, który wyświetli na ekranie liczby z zakresu 120 w kolejności rosnącej i malejącej.

Rz5o8obIq7TPz
Lista kroków: (Uzupełnij).
R1X1h5G1MBJhy
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Porównaj wynik działania Twojego programu z prezentacją.

R1Z4QYamOO7Kz
Nagranie

Rezultatem działania przedstawionego programu jest wypisanie ciągu złożonego z liczb: 1 2 3 4 5 6 7 8 9 10.

R12CZuTDrzl99
Wysłuchaj nagrania abstraktu, wyodrębnij jego części i nadaj im tytuły.
Polecenie 3

Napisz program, który pobierze od użytkownika liczbę naturalną, a następnie zsumuje od 1 do wskazanej liczby.

R1XkzDLbt69cV
Wymyśl pytanie na kartkówkę związane z tematem materiału.
R1K7OD94LAQ55

Plik JAVA o rozmiarze 431.00 B w języku polskim

Operacje na liczbach

Wypisanie ciągu liczb z zakresu 110

Napiszemy w języku Java program, który wyświetli na ekranie ciąg liczb z zakresu od 1 do 10. Zaczniemy od utworzenia klasy Main oraz metody main(), która odpowiada za uruchomienie programu:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. zamknij nawias klamrowy. Linia 5. zamknij nawias klamrowy.

Następnie zastosujemy pętlę for. Ponieważ chcemy wypisać liczby z zakresu 110, umieszczone w ciele pętli instrukcje powinny zostać wykonane 10 razy. Przypisujemy zatem wartość początkową 1 iteratorowi noszącemu nazwę i (jest to zmienna typu całkowitego). Pętla będzie działać, dopóki wartość iteratora nie przekroczy 10. Po każdym cyklu pętli do zmiennej i dodamy 1:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. zamknij nawias klamrowy. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy.

Ponieważ iterator w każdym cyklu pętli przyjmuje kolejną wartość z zakresu 110, możemy po prostu wypisywać na ekranie zmienną i. Poszczególne liczby rozdzielimy znakiem spacji:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka print otwórz nawias okrągły i plus cudzysłów cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy.
Ważne!

Operator dodawania (+) w poleceniu i + " " (linia numer 4) oznacza połączenie dwóch wyrażeń w jeden ciąg znaków. Takie działanie nazywa się konkatenacją.

Rezultatem działania przedstawionego programu jest wypisanie ciągu złożonego z liczb: 1 2 3 4 5 6 7 8 9 10.

Słownik

iterator
iterator

zmienna, od której wartości zależy, czy zostanie wykonany kolejny cykl pętli; inaczej zmienna sterująca lub licznik

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

pętla warunkowa
pętla warunkowa

rodzaj pętli, w której zdefiniowany jest warunek, od którego zależy wykonanie kolejnej iteracji; warunek zawarty w definiowanej pętli jest pewnym wyrażeniem, które zwraca wartość typu logicznego; zależnie od tego, czy wartość logiczna uzyskana w wyniku ewaluacji wyrażenia jest równa wartości logicznej true (prawda), czy false (fałsz), wykonywanie pętli jest kontynuowane bądź przerywane

zmienna logiczna
zmienna logiczna

zmienna, która przyjmuje wartości 1 (true – prawda) lub 0 (false – fałsz); najczęściej używana do sprawdzenia, czy dany warunek zachodzi