Instrukcja break

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
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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 breakcontinue są konieczne?

Powyższe programy można również napisać, nie korzystając z instrukcji breakcontinue. Piszesz po prostu odpowiednie instrukcje warunkowe.

Instrukcje breakcontinue, 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