Przeczytaj
Przypomnijmy, co już wiemy na temat pętli. Służą one do wielokrotnego wykonywania jednej operacji lub całego zestawu poleceń. Dopóki spełniony jest pewien warunek logiczny, dopóty instrukcje umieszczane wewnątrz pętli są wykonywane. Oto budowa pętli while
w języku C++ oraz Java:
Polecenia instr1
, instr2
, instr3
wykonywane będą tak długo, dopóki wyrażenie logiczne wyrażenie
będzie prawdziwe. Podobnie wygląda pętla do‑while
. Różnica polega na tym, że warunek logiczny sprawdzany jest po wykonaniu instrukcji umieszczonej (lub umieszczonych) wewnątrz pętli.
W przypadku języka Python pętla while
wygląda tak:
Polecenia instr_1
, instr_2
wykonywane będą tak długo, dopóki wyrażenie
będzie prawdziwe. W języku Python pętla do‑while
nie występuje.
Przypomnijmy jeszcze budowę pętli for
w języku Java i C++:
W tym przypadku używamy wyrażenia inicjującego (deklarację iteratora) jako licznika powtórzeń pętli. Wyrażenie dotyczące warunku pętli to warunek logiczny – jeżeli jest on spełniony, wykonywane są operacje w pętli. Z kolei zmiana wartości iteratora jest instrukcją zmieniającą wartość wyrażenia inicjującego (deklaracja iteratora
), po każdej iteracjiiteracji.
Natomiast w przypadku języka Python, pseudokod pętli for
wygląda następująco:
Dla każdej wartości z określonego zakresu (uwzględniając wartość kroku, czyli różnicy pomiędzy kolejnymi wartościami zakresu — domyślnie równej 1) wykonywane są instrukcje zawarte wewnątrz pętli. W zmiennej i
, przy kolejnych iteracjach pętli, przechowywane są kolejno liczby całkowite z zakresu <zakres_początek
, zakres_koniec
).
Instrukcja break
Czasem zdarza się, że chcemy przerwać działanie pętli pomimo tego, że nie zostały wykonane wszystkie umieszczone wewnątrz niej instrukcje. W takiej sytuacji przydaje się polecenie break
.
Instrukcji break
może towarzyszyć warunek (wyrażenie logiczne). Jeżeli jest on spełniony, pętla zostanie opuszczona. Wyjaśnia to zaprezentowany schemat blokowy. Jeżeli instrukcji break
nie towarzyszy warunek, to na pytanie zawarte w bloku „Czy warunek przerwania pętli jest spełniony?” odpowiedź zawsze brzmi „Tak”.
Najpierw sprawdzamy, czy decydujące o wykonaniu pętli wyrażenie logiczne ma wartość true
. Jeżeli nie, kończymy działanie pętli. Gdy natomiast wyrażenie jest prawdziwe, wykonywane są operacje opisane wewnątrz pętli. Jeżeli wśród poleceń znajdzie się instrukcja break
, to pętla zostanie opuszczona bez wykonywania dalszych operacji. Jeżeli instrukcji break
będzie towarzyszyło wyrażenie logiczne, to w przypadku przyjęcia wartości true
, pętla także zostanie opuszczona. Jeżeli przyjmie wartość false
, wykonywane będą kolejne instrukcje w pętli. Taki mechanizm często stosuje się w przypadku pętli zagnieżdżonychpętli zagnieżdżonych. Instrukcja break
przerywa wówczas działanie pętli wewnętrznej.
Przedstawiony program, przy użyciu schematu blokowego, wyświetla wszystkie słowa występujące w liście zdanie
(kolejne słowa oddzielone są przecinkami), nie zawierające litery znak
. W programie użyto pętli zagnieżdżonych. Przetestuj działanie programu dla następujących danych:
n = 4
znak = "b"
zdanie = "instrukcja,break,i,petle"
Zwróć uwagę, że w programie użyto instrukcji break
.
Specyfikacja problemu:
Dane:
znak
– litera alfabetu łacińskiegozdanie
– lista ciągów znaków zawierającan
słów różnej długości rozdzielonych przecinkamin
– liczba naturalna; liczba słów w liściezdanie
Wynik:
Program wypisze listę
zdanie
bez słów zawierających literęznak
.
Instrukcja continue
Polecenie continue
przypomina nieco działanie instrukcji break
. Nie służy ono jednak do opuszczenia pętli, lecz do pominięcia kolejnych operacji w bieżącym cyklu. Jeżeli instrukcji continue
dodatkowo towarzyszy warunek, schemat blokowy wygląda następująco:
W przypadku pojawienia się instrukcji continue
pomijane są kolejne polecenia w pętli. Jeżeli wykonanie instrukcji continue
jest zależne od warunku i jest on spełniony, rozpoczyna się następna iteracja. Natomiast w przypadku, gdy warunek nie jest spełniony, wykonywana jest dalsza część operacji w aktualnej iteracji.
Pętle nieskończone
W przypadku gdy warunek wykonania pętli zawsze jest spełniony, to działanie pętli trwa w nieskończoność. Przykładem jest pętla for
, w której w ogóle nie podamy warunku (z punktu widzenia składni C++ nie jest to obowiązkowe), a także odpowiednio zbudowana pętla while
lub do‑while
. Przykład w języku C++ lub Java:
Pętla nieskończona w języku Python:
Jedynym sposobem zakończenia takiej pętli jest użycie instrukcji break
. Warto wiedzieć, że pętli nieskończonych często używa się podczas programowania mikrokontrolerów.
Instrukcja wyboru wielokrotnego i break
Słowo kluczowe break
pojawia się często w znanej ci już instrukcji switch‑case
w języku C++ oraz Java. W tym przypadku nie towarzyszy mu wyrażenie logiczne. Polecenie break
ma po prostu zakończyć wykonywanie instrukcji wyboru wielokrotnego:
Słownik
słowo pochodzące od łacińskiego iteratio (powtarzanie); oznacza powtarzanie w pętli tych samych instrukcji, aż do spełnienia pewnego warunku
pętla umieszczona wewnątrz innej pętli