Poniżej przedstawione modyfikowanie działania pętli nie jest polecane, głównie ze względu na optymalizację kodu oraz jego czytelność. Zatem powinniśmy unikać stosowania tych konstrukcji. Są one podane z uwagi na naturę dydaktyczną.
Break, continue
Dowolną pętlę możemy przerwać w środku jej działania, bez wykonania warunku. Służy do tego instrukcja break. Wykonanie kolejnej iteracji pętli, bez kończenia wszystkich czynności z poprzedniej iteracji umożliwia nam continue.
Odliczanie od 10, przerwanie przy wartości losowej:
int los = losuj(0, 9)+1; // losuje wartość od 1 do 10
Wypisz los; Wypisz "\n"; // "\n" przerzuca do nowej linii
for(int i = 10; i > 0; i--)
{
if(i == los){
Wyświetl "Nieproszony gość!, przerywam.";
break; // przerywa całkowicie działanie pętli
}
Wypisz i; Wypisz ", ";
};
Przykładowy wynik wykonania powyższego programu:
4
10, 9, 8, 7, 6, 5, Nieproszony gość!, przerywam.
Odliczanie od 10, przeskok do kolejnej iteracji przy wartości losowej:
int los = losuj(0, 9)+1; // losuje wartość od 1 do 10
Wypisz los; Wypisz "\n";
for(int i = 10; i > 0; i--)
{
if(i == los){
Wyświetl "Przeskok !, ";
continue; // przerywa obecną iterację;
}
Wypisz i; Wypisz ", ";
};
Przykładowy wynik wykonania powyższego programu:
6
10, 9, 8, 7, Przeskok!, 5, 4, 3, 2, 1,
Goto
W niektórych językach możemy również przenieść działanie programu za pośrednictwem instrukcji skoku goto do ustalonego punktu, zapisanego w postaci nazwa: (nazwa miejsca skoku zakończona dwukropkiem).
Przeskok dla x == 10:
int x = 0;
while(x < 100)
{
if(x == 10) goto etykieta; // instrukcja skoku;
x++; // inkrementacja;
};
return x; // instrukcja zwracająca x;
etykieta: Wypisz "Przerwano działanie pętli"; return 0;
Przykładowy wynik wykonania powyższego programu:
Przerwano działanie pętli; Program zwrócił 0.
Przerywanie pętli, bądź przeskakiwanie za pośrednictwem goto nie jest praktykowane ze względu na czytelność kodu programu (pętla umieszczona na początku kodu, która następnie przeskakuje do znacznika oddalonego o 50 – 100 linijek kodu nie jest czytelna).
Autor tekstu: Jacek Woźniak