Python • kurs podstawowy • lekcja 13
break i continue
Program przegląda numery.
Twój cel: Rozróżnisz zakończenie pętli przez break od pominięcia reszty iteracji przez continue.Pętle for i while.
Zbuduj model działania
Część trzeba pominąć, a przy wybranej wartości zakończyć całe przeglądanie. break opuszcza najbliższą otaczającą pętlę. continue pomija resztę bieżącej iteracji; w for pobierany jest kolejny element, w while ponownie sprawdzany warunek.
Kolejność instrukcji jest ważna. Jeśli print wystąpi przed continue, wartość zdąży się wyświetlić. Jeśli break wystąpi przed print, kończąca wartość nie zostanie wypisana. Kod po całej pętli nadal się wykonuje.
Przy while uważaj, by continue nie omijało zmiany licznika. Najpierw prześledź drogę przez ciało pętli na kartce. Gdy zwykłe if wystarcza i jest czytelne, nie trzeba dodawać continue.
Przewidź przed uruchomieniem
for number in range(1, 8):
if number == 6:
break
if number % 2 == 0:
continue
print(number)
print("Koniec")
Porównaj wynik i prześledź mechanizm
1, 3 i 5. Dla 2 i 4 continue pomija print. Przy 6 działa break, więc 7 nie jest już pobierane. Po pętli pojawi się Koniec.
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
1
3
5
Koniec
| number | Decyzja | Wydruk |
|---|---|---|
| 1 | Zwykły przebieg | 1 |
| 2 | continue | brak |
| 3 | Zwykły przebieg | 3 |
| 4 | continue | brak |
| 5 | Zwykły przebieg | 5 |
| 6 | break | koniec pętli |
Zmień działający program
Zmień warunek pomijania tak, aby pomijał wielokrotności 3, a pętla kończyła się przy 6.
Pierwsza wskazówka
Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.
Porównaj swoją modyfikację
for number in range(1, 8):
if number == 6:
break
if number % 3 == 0:
continue
print(number)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
1
2
4
5
Znajdź przyczynę problemu
Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.
Zamierzone działanie: Pomiń tylko 2, a pozostałe liczby wypisz.
for number in range(1, 6):
if number == 2:
break
print(number)
Trop do diagnozy
Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.
Zastosuj w nowej sytuacji
Wskazówka do rozpoczęcia
break kończy najbliższą pętlę; continue kończy jedynie jej bieżącą iterację.
Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:
for letter in "a-b!c":
Rozwiązanie do samodzielnej kontroli
for letter in "a-b!c":
if letter == "!":
break
if letter == "-":
continue
print(letter)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
a
b
Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.
Co zabierasz do kolejnego programu?
break kończy najbliższą pętlę; continue kończy jedynie jej bieżącą iterację.
Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.