0Pricing
Go Academy · Lekcja

break, continue i etykiety

Sterowanie przepływem pętli i etykietowane instrukcje break

break, continue i etykiety to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.

Podstawy sterowania pętlą

Go udostępnia trzy słowa kluczowe do sterowania wykonywaniem pętli:

  • break — kończy bieżącą pętlę lub switch
  • continue — przechodzi do następnej iteracji
  • goto — przechodzi do instrukcji oznaczonej etykietą, ale jest rzadko używane

Etykiety rozszerzają działanie break i continue, umożliwiając ich używanie z zewnętrznymi pętlami.

break w pętli

break natychmiast kończy najbardziej wewnętrzną instrukcję for, switch lub select:

for i := 0; i < 100; i++ {
    if i*i > 50 {
        break
    }
    fmt.Println(i)
}

continue

continue pomija pozostałą część bieżącego bloku pętli i przechodzi do instrukcji końcowej lub sprawdzenia warunku:

for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue // skip even numbers
    }
    fmt.Println(i) // prints 1,3,5,7,9
}

break z etykietą

Etykieta umieszczona przed pętlą for pozwala zakończyć tę pętlę z poziomu pętli wewnętrznej:

search:
for i, row := range grid {
    for j, cell := range row {
        if cell == target {
            fmt.Printf("found at %d,%d\n", i, j)
            break search
        }
    }
}

continue z etykietą

continue z etykietą przechodzi do następnej iteracji oznaczonej etykietą zewnętrznej pętli:

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if j == 1 {
            continue outer
        }
        fmt.Printf("%d,%d\n", i, j)
    }
}

Kiedy używać etykiet

Etykiety są odpowiednie, gdy:

  • Trzeba przerwać zagnieżdżoną pętlę z głębokiego poziomu
  • Wydzielenie funkcji byłoby zbyt rozwlekłe

Etykiety są w języku Go rzadko używane — jeśli często ich potrzebujesz, rozważ refaktoryzację z użyciem funkcji lub kanałów.

goto (rzadko używane)

Go udostępnia goto do przechodzenia do instrukcji oznaczonej etykietą. Można go używać w obrębie tej samej funkcji, ale nie wolno za jego pomocą pomijać deklaracji zmiennych:

  • Zastosowania: wygenerowany kod i zwarte pętle obsługi błędów
  • Należy unikać w ręcznie pisanym kodzie — preferowany jest strukturalny przepływ sterowania

break w select

Wewnątrz instrukcji select polecenie break kończy select, a nie zewnętrzną pętlę for. Aby zakończyć zewnętrzną pętlę, użyj break z etykietą:

loop:
for {
    select {
    case msg := <-ch:
        handle(msg)
    case <-done:
        break loop
    }
}

Unikanie głębokich zagnieżdżeń

Głęboko zagnieżdżone pętle trudno czytać. Przed dodaniem break z etykietą zadaj sobie pytania:

  • Czy mogę wydzielić wewnętrzną pętlę do funkcji pomocniczej?
  • Czy mogę użyć kanału lub slice, aby uprościć iterację?
  • Czy wczesne instrukcje return mogą ograniczyć zagnieżdżenie na zewnętrznym poziomie?

Praktyczny wzorzec: wyszukiwanie z użyciem break

Typowy wzorzec: przeszukanie kolekcji i przerwanie po znalezieniu elementu:

func contains(slice []string, target string) bool {
    for _, v := range slice {
        if v == target {
            return true // prefer return over break+flag
        }
    }
    return false
}

Szybkie sprawdzenie

Jak w języku Go zakończyć zewnętrzną pętlę z poziomu pętli wewnętrznej?

Podsumowanie: break, continue i etykiety

Skutecznie steruj przepływem pętli w języku Go:

  • break kończy bieżącą pętlę lub switch
  • continue przechodzi do następnej iteracji
  • Etykiety pozwalają wskazać zewnętrzną pętlę za pomocą break/continue
  • goto istnieje, ale jest rzadko używane w idiomatycznym kodzie Go
  • Wewnątrz select użyj break z etykietą, aby zakończyć zewnętrzną pętlę for

Następny kurs: funkcje i wiele wartości zwracanych.

Często zadawane pytania

Czy lekcja „break, continue i etykiety” jest bezpłatna?

Tak — pełny tekst „break, continue i etykiety” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „break, continue i etykiety”?

Sterowanie przepływem pętli i etykietowane instrukcje break Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Go Academy?

Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „break, continue i etykiety”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?

Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Instrukcje if i wyrażenia inicjalizujące
  2. Pętla for: wszystkie wzorce
  3. Instrukcje switch w Go
  4. break, continue i etykiety
← Powrót do Go Academy