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 switchcontinue— przechodzi do następnej iteracjigoto— 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:
breakkończy bieżącą pętlę lub switchcontinueprzechodzi do następnej iteracji- Etykiety pozwalają wskazać zewnętrzną pętlę za pomocą
break/continue gotoistnieje, 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
- Instrukcje if i wyrażenia inicjalizujące
- Pętla for: wszystkie wzorce
- Instrukcje switch w Go
- break, continue i etykiety