CodeGym /Kursy /JAVA 25 SELF /Sterowanie pętlą: instrukcje break i continue

Sterowanie pętlą: instrukcje break i continue

JAVA 25 SELF
Poziom 4 , Lekcja 4
Dostępny

1. Wprowadzenie

Często zdarza się, że nie trzeba wykonywać wszystkich iteracji pętli do końca, lecz należy wyjść z niej wcześniej – na przykład, gdy tylko znajdziesz poszukiwany element. W innych przypadkach trzeba pominąć część pracy i przejść do następnego kroku (np. po odczytaniu danych chcesz pominąć ich przetwarzanie). To właśnie jest sterowanie przepływem wewnątrz pętli.

Instrukcje break i continue w Java są przeznaczone właśnie do tego. Przyjrzyjmy się, jak działają i do czego przydają się w realnych zadaniach.

2. Instrukcja break: „Stop, maszyna!”

Teoria i składnia

Instrukcja break służy do natychmiastowego wyjścia z pętli, niezależnie od miejsca w jej ciele. Gdy tylko wykonanie programu dojdzie do break, pętla od razu kończy pracę, a wykonywanie kontynuowane jest od pierwszej linii kodu po pętli.


while (uslovie)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // pozostały kod pętli
}
Użycie break w pętli while

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

for (int i = 0; i < 10; i++)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // pozostały kod pętli
}

Przykład 1: sprawdzenie, czy liczba jest pierwsza

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

Przykład:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("Znaleziono dzielnik " + i );
        break; // Zatrzymujemy pętlę, nie ma potrzeby niczego dalej szukać!                
    }    
}

if (!found)
{
    System.out.println("Nie znaleziono dzielnika — 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)
{
    System.out.print("Podaj swój wiek: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("Świetnie! Twój wiek: " + age);
            break; // dane są poprawne — wychodzimy
        }
        else
        {
            System.out.println("Błąd! Wprowadź dodatni wiek.");
        }
    }
    else
    {
        System.out.println("Błąd! Wprowadź liczbę.");
        console.nextLine(); // czyścimy nieprawidłowy wpis
    }
}

Po co to jest:
Czasem trzeba wykonywać pętlę w nieskończoność (albo bardzo długo), dopóki użytkownik nie wprowadzi poprawnych danych. Gdy tylko zajdzie zdarzenie, które nas satysfakcjonuje – stosujemy break i ostatecznie wychodzimy z pętli.

3. Instrukcja continue: „Następny, proszę!”

Teoria i składnia

W odróżnieniu od break, instrukcja continue nie kończy całej pętli, a jedynie przerywa bieżącą iterację: wszystko, co znajduje się po continue w ciele pętli, NIE jest wykonywane – następuje przejście do kolejnej iteracji.


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

Przykład 3: pomijanie liczb parzystych

Załóżmy, że chcesz wypisać tylko liczby nieparzyste z zakresu. Parzyste należy pominąć.


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

Co się dzieje:
Gdy i = 2, 4, 6..., pętla napotyka continue i od razu przechodzi do następnej iteracji, nie wykonując System.out.println.

Wizualizacja działania krok po kroku:

i i % 2 == 0 Działanie
1 false print, brak continue
2 true continue, brak print
3 false print, brak continue
... ... ...

Instrukcje break i continue są używane bardzo często – właściwie 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