capypad
0 Tage Serie
go / beginner
Snippet

Die vielseitige for-Schleife

Go hat nur eine Schleifenkonstruktion: for. Sie kann als klassische Dreiteiler-for-Schleife, eine while-artige Schleife oder eine Endlosschleife mit break fungieren. Die range-Klausel iteriert über Slices, Arrays, Maps und Strings mit Index und Wert.

snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main
import "fmt"
 
func main() {
// Classic counter loop
for i := 0; i < 3; i++ {
fmt.Printf("Counter: %d\n", i)
}
// While-style loop
count := 3
for count > 0 {
fmt.Printf("Countdown: %d\n", count)
count--
}
// Infinite loop with break
sum := 0
for {
sum++
if sum > 5 {
break
}
}
fmt.Printf("Sum: %d\n", sum)
// Range iteration
fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
fmt.Printf("%d: %s\n", i, fruit)
}
}
Erklärung
1
for i := 0; i < 3; i++
Klassische C-artige Schleife mit Initialisierung, Bedingung und Post-Anweisung
2
for count > 0
While-artig: nur Bedingung vorhanden, Schleife läuft bis Bedingung falsch ist
3
for { sum++; if sum > 5 { break } }
Endlosschleife mit break für vorzeitiges Beenden wenn Bedingung erfüllt
4
for i, fruit := range fruits
Range gibt Index und Wert für jedes Element zurück; verwende _ um Index zu ignorieren