Podręcznik
Wersja podręcznika: 1.0
Data publikacji: 01.01.2022 r.
7. Instrukcje sterujące
7.4. Przerywanie wykonania pętli
Zanim przejdziemy do omawiania pętli – zajmijmy się możliwością przerwania ich działania. W przypadku każdej z pętli mamy dwie dodatkowe instrukcje sterujące:
- continue przerywa wykonanie aktualnego przebiegu pętli, i wymusza przeskok do sprawdzenia warunku, i ewentualnego wykonania kolejnego przebiegu.
- break przerywa bezwarunkowo wykonanie pętli i przejście do pierwszej instrukcji poza pętlą.
W przypadku pętli zagnieżdżonych, zawsze continue i break oddziałują tylko na pętlę w której bezpośrednio zostały wywołane … jeśli mamy pętlę w pętli – nie ma możliwości przerwania wykonania ich obu jednym poleceniem, chyba że jest to polecenie wyjścia z funkcji.
Nie zaleca się nadużywania, czy też częstego stosowania obu instrukcji break i continue. Zazwyczaj nie ma potrzeby ich stosowania, a jeśli jest – najczęściej jest przejawem złego zaprojektowania pętli i warunków nią sterujących.
Nie zaleca się stosowania obu poleceń nie tylko dlatego, że są „nieeleganckie”. Dużo ważniejszym powodem jest optymalizacja kompilatorów połączona z konstrukcją współczesnych procesorów. Większość z nich to procesory potokowe, współpracujące z pamięcią cache, dla których niespodziewane przerwanie normalnego (czyt. przewidywanego) toku wykonania programu oznacza ogromną stratę czasu. Trzeba w takim wypadku opróżnić cały potok, oraz najczęściej też uaktualnić zawartość cache.