CodeGym /Kursy /C# SELF /Zarządzanie pętlą: operatory break i continue

Zarządzanie pętlą: operatory break i continue

C# SELF
Poziom 4 , Lekcja 4
Dostępny

1. Wprowadzenie

Często zdarza się sytuacja, gdy nie musisz przechodzić przez wszystkie iteracje pętli do końca, tylko chcesz wyjść z niej wcześniej — na przykład, gdy znajdziesz szukany element. W innych przypadkach trzeba pominąć część pracy i przejść do następnego kroku (na przykład, gdy wczytałeś dane i chcesz pominąć ich przetwarzanie). To właśnie jest zarządzanie przepływem wewnątrz pętli.

Operatory break i continue w C# są właśnie do tego. Zobaczmy, jak działają i do czego się przydają w prawdziwych zadaniach.

2. Operator break: "Stop, maszyna!"

Teoria i składnia

Operator break służy do natychmiastowego wyjścia z pętli, gdziekolwiek jesteś w jej ciele. Gdy wykonanie programu dojdzie do break, pętla od razu kończy pracę, a wykonanie przechodzi do pierwszej linii kodu po pętli.


while (warunek)
{
    if (jakis-warunek)
    {
        break;
    }
    // reszta kodu pętli
}
Użycie break w pętli while

To samo działa dla for i do-while:

for (int i = 0; i < 10; i++)
{
    if (jakis-warunek)
    {
        break;
    }
    // reszta kodu pętli
}

Przykład 1: sprawdzanie liczby pierwszej

Liczba jest pierwsza, jeśli dzieli się tylko przez 1 i przez siebie. Musimy sprawdzić liczbę pod kątem pierwszości: przejść przez wszystkich potencjalnych dzielników od 2 do n-1. Jeśli okaże się, że nasza liczba dzieli się przez dzielnik, to dalej nie trzeba sprawdzać — liczba nie jest pierwsza! Można zakończyć pętlę.

Przykład:

int number = 111;
bool found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        Console.WriteLine("Znaleziono dzielnik " + i );
        break; // Zatrzymujemy pętlę, nie trzeba już nic szukać!                
    }    
}

if (!found)
{
    Console.WriteLine("Dzielnik nie znaleziony - liczba jest pierwsza.");
}

Przykład 2: walidacja danych wejściowych użytkownika

Napiszmy małą aplikację, na przykład interaktywną ankietę do zbierania danych:

while (true)
{
    Console.Write("Podaj swój wiek: ");
    string input = Console.ReadLine();
    int age;
    if (int.TryParse(input, out age) && age > 0)
    {
        Console.WriteLine($"Super! Twój wiek: {age}");
        break;   // Dane wprowadzone poprawnie — czas zakończyć pętlę!
    }
    else
    {
        Console.WriteLine("Błąd! Podaj poprawny dodatni wiek.");
    }
}

Po co to jest:
Czasem trzeba kręcić pętlę w nieskończoność (albo bardzo długo), dopóki użytkownik nie poda poprawnych danych. Jak tylko wydarzy się coś, co nas zadowala — używamy break i wychodzimy z pętli na dobre.

3. Operator continue: "Następny, proszę!"

Teoria i składnia

W przeciwieństwie do break, operator continue nie kończy całej pętli, tylko przerywa bieżącą iterację: wszystko, co jest napisane po continue w ciele pętli, NIE jest wykonywane — następuje przejście do następnej iteracji.


for (int i = 0; i < 10; i++)
{
    if (warunek)
    {
        continue;
    }
    // ta część wykona się tylko jeśli continue nie zadziałał
}
Użycie continue w pętli for

Przykład 3: pomijanie liczb parzystych

Wyobraź sobie, że musisz wypisać tylko liczby nieparzyste z zakresu. Parzyste trzeba pominąć.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // jeśli liczba parzysta — pomijamy wszystko poniżej!
    }
    Console.WriteLine("Liczba nieparzysta: " + i);
}
Pomijanie liczb parzystych za pomocą continue

Co się dzieje:
Gdy i = 2, 4, 6... pętla napotyka continue i od razu przeskakuje do następnej iteracji, nie wykonując Console.WriteLine.

Wizualizacja działania krok po kroku:

i i % 2 == 0 Akcja
1 false print, brak continue
2 true continue, brak print
3 false print, brak continue
4 true continue, brak print
... ... ...

Operatory break i continue są używane bardzo często. W zasadzie w co drugiej pętli. Spodoba Ci się praca z nimi.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION