Lekcje modułu (2/5)
for: jedyna pętla
Go ma konstrukcję pojedynczej pętli: for. Nie while, nie
do-while, brak foreach (który pojawi się w następnej lekcji z
KODEF4). Jedno słowo kluczowe obejmuje wszystkie przypadki dzięki trzem formom.
Trzy formy for
Klasyczna forma z trzema klauzulami
Identyczny z C/Java:
for i := 0; i < 5; i++ {
fmt.Println(i)
}i ma zakres ograniczony do for. Trzy klauzule są opcjonalne (możesz
pomiń którykolwiek z nich), ale ; pozostanie, jeśli pominiesz pośredni.
Formularz „while”: tylko warunek
W Go while jest po prostu for z pojedynczym wyrażeniem bool:
i := 0
for i < 5 {
fmt.Println(i)
i++
}Nieskończona forma
Bez klauzul pętla nigdy się nie kończy (chyba że break/return):
for {
if exitCondition() {
break
}
doWork()
}Jest to wzór dla pętli obsługi zdarzeń, serwerów i zasad ponawiania prób.
break, continue i etykiety
break opuszcza najbardziej wewnętrzną pętlę, continue przechodzi do następnej iteracji:
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // salta i pari
}
if i > 7 {
break // ferma il ciclo
}
fmt.Println(i) // 1 3 5 7
}Aby wyjść z zagnieżdżonych pętli, dostępne są etykiety (rzadkie, ale przydatne):
Esterno:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i*j == 4 {
break Esterno // esce da entrambi
}
}
}Brak operatora , jak w C
W Go nie możesz napisać for i, j := 0, 10; i < j; i, j = i+1, j-1:
wyrażenie post nie akceptuje wielu przypisań. Użyj Go
Składnia wielokrotnego przypisania:
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
fmt.Println(i, j)
}Zamiast tego działa, ponieważ i, j = i+1, j-1 jest pojedynczy
wielokrotne zadanie.
Spróbuj
Wydrukuj liczby od 0 do 4 włącznie z klasycznym trzema klauzulami for.
Pokaż wskazówkę
`for init; cond; post { ... }` — tutaj init to `i := 0`.
Rozwiązanie dostępne po 3 próbach
Zsumuj wszystkie liczby od 1 do 10 włącznie, używając formy „while” for.
Pokaż wskazówkę
forma „podczas”: `for <condition> { ... }`.
Rozwiązanie dostępne po 3 próbach
Która forma reprezentuje nieskończoną pętlę w Go?
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }Podsumowanie
- Pojedyncze słowo kluczowe
forw trzech postaciach: klasyczna, podczas gdy, nieskończona. break/continueopcjonalnie z etykietą dla zagnieżdżonych pętli.- Etykieta
Name:przedfor, używana oszczędnie. - Brak operatora
,: użyj przypisania wielokrotnegoi, j = ..., ....