Instrukcja break kończy pętlę, w której się znajduje. Program wychodzi z pętli i jest wykonywany dalej. Instrukcję break można stosować zarówno w pętli for, jak i while.
Jeśli break znajduje się w zagnieżdżonej pętlizagnieżdżenie pętlizagnieżdżonej pętli, kończy tylko jedną pętlę – tę, w której się znajduje.
R1dJpY0YmMQJz1
Spójrzmy na przykładowe wykorzystanie break w kodzie. Poniżej znajduje się program sprawdzający, czy „Asia” znajduje się na liście imion.
Linia 1. imiona znak równości otwórz nawias kwadratowy cudzysłów Kuba cudzysłów przecinek cudzysłów Asia cudzysłów przecinek cudzysłów Karolina cudzysłów przecinek cudzysłów Maciek cudzysłów przecinek cudzysłów Magda cudzysłów zamknij nawias kwadratowy.
Linia 2. czyZnaleziono znak równości False.
Linia 4. for imie in imiona dwukropek.
Linia 5. print otwórz nawias okrągły cudzysłów Imie dwukropek cudzysłów plus imie zamknij nawias okrągły.
Linia 7. if imie znak równości znak równości cudzysłów Asia cudzysłów dwukropek.
Linia 8. print otwórz nawias okrągły cudzysłów Znaleziono wykrzyknik cudzysłów zamknij nawias okrągły.
Linia 9. czyZnaleziono znak równości True.
Linia 11. print otwórz nawias okrągły cudzysłów Czy znaleziono znak zapytania cudzysłów plus str otwórz nawias okrągły czyZnaleziono zamknij nawias okrągły zamknij nawias okrągły.
Wynik będzie następujący:
Linia 1. Imie dwukropek Kuba.
Linia 2. Imie dwukropek Asia.
Linia 3. Znaleziono wykrzyknik.
Linia 4. Imie dwukropek Karolina.
Linia 5. Imie dwukropek Maciek.
Linia 6. Imie dwukropek Magda.
Linia 7. Czy znaleziono znak zapytania True.
Jak widać, mimo że imię zostało znalezione już na początku pętli, była ona wykonywana do końca. Wykorzystując instrukcję break, możemy przerwać pętlę, kiedy imię będzie znalezione. Poniższy kod przedstawia program z dodaną instrukcją break:
Linia 1. imiona znak równości otwórz nawias kwadratowy cudzysłów Kuba cudzysłów przecinek cudzysłów Asia cudzysłów przecinek cudzysłów Karolina cudzysłów przecinek cudzysłów Maciek cudzysłów przecinek cudzysłów Magda cudzysłów zamknij nawias kwadratowy.
Linia 2. czyZnaleziono znak równości False.
Linia 4. for imie in imiona dwukropek.
Linia 5. print otwórz nawias okrągły cudzysłów Imie dwukropek cudzysłów plus imie zamknij nawias okrągły.
Linia 7. if imie znak równości znak równości cudzysłów Asia cudzysłów dwukropek.
Linia 8. print otwórz nawias okrągły cudzysłów Znaleziono wykrzyknik cudzysłów zamknij nawias okrągły.
Linia 9. czyZnaleziono znak równości True.
Linia 10. break.
Linia 12. print otwórz nawias okrągły cudzysłów Czy znaleziono znak zapytania cudzysłów plus str otwórz nawias okrągły czyZnaleziono zamknij nawias okrągły zamknij nawias okrągły.
Jej wynik wygląda następująco:
Linia 1. Imie dwukropek Kuba.
Linia 2. Imie dwukropek Asia.
Linia 3. Znaleziono wykrzyknik.
Linia 4. Czy znaleziono znak zapytania True.
Dzięki tej operacji nasz program został zoptymalizowanyoptymalizacjazoptymalizowany i nie wykonuje niepotrzebnie kodu. Tak samo możemy zrobić w pętli while.
Instrukcja continue
Instrukcja continue działa podobnie, ale nie kończy działania całej pętli, a jedynie kończy aktualną iterację – kod wewnątrz pętli, który jest po continue, nie zostanie wykonany w tej iteracji.
Można to wykorzystać w sytuacji, kiedy element wewnątrz pętli nie spełnia założonych warunków i nie ma potrzeby wykonywania kolejnych instrukcji w tej iteracji pętli.
Poniższy program drukuje silnię tylko parzystych liczb z podanego zakresu.
Linia 1. for x in range otwórz nawias okrągły 1 przecinek 10 zamknij nawias okrągły dwukropek.
Linia 2. if x procent 2 wykrzyknik znak równości 0 dwukropek.
Linia 3. continue kratka liczba nie jest parzysta minus nie ma sensu wykonywać dalszych operacji dla tej liczby.
Linia 4. silnia znak równości x.
Linia 5. for y in range otwórz nawias okrągły 1 przecinek x zamknij nawias okrągły dwukropek.
Linia 6. silnia asterysk znak równości y.
Linia 8. print otwórz nawias okrągły cudzysłów Silnia liczby otwórz nawias klamrowy 0 zamknij nawias klamrowy wynosi otwórz nawias klamrowy 1 zamknij nawias klamrowy cudzysłów kropka format otwórz nawias okrągły x przecinek silnia zamknij nawias okrągły zamknij nawias okrągły.
Jak widać, jeśli liczba jest nieparzysta, to dalsza część pętli nie jest wykonywana, tylko natychmiast wykonywana jest kolejna iteracja.
Czy break i continue są konieczne?
Powyższe programy można również napisać, nie korzystając z instrukcji break i continue. Piszesz po prostu odpowiednie instrukcje warunkowe.
Instrukcje break i continue, jeśli są wykorzystywane w skomplikowanych algorytmach, w wielu miejscach, sprawiają, że kod staje się nieczytelny. Łamie to zasady pisania dobrego kodu i sprawia problem innym w zrozumieniu programu.
Z tego względu powinno się korzystać z instrukcji przerwania z umiarem – tylko wtedy, kiedy jest to konieczne.
Słownik
zagnieżdżenie pętli
zagnieżdżenie pętli
wywołanie jednej pętli wewnątrz drugiej
optymalizacja
optymalizacja
poprawa wydajności programu komputerowego lub algorytmu poprzez zmniejszenie liczby operacji potrzebnych do otrzymania wyniku