Perulangan: for & range
Satu-satunya perulangan Go: for dalam berbagai bentuk.
Hanya ada satu: for
Go tidak punya while maupun do-while. Semua perulangan memakai for.
Bentuk 1: klasik
for i := 0; i < 5; i++ {
fmt.Println(i)
}
Tiga bagian: awal; syarat (diulang selama true); langkah setelah tiap putaran.
Bentuk 2: seperti while
n := 3
for n > 0 {
fmt.Println(n)
n--
}
Bentuk 3: tanpa akhir
for {
// berjalan selamanya sampai ada break atau return
}
break dan continue
break— keluar dari perulangan.continue— lompat ke putaran berikutnya.
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
fmt.Println(i) // 1 2 4 5
}
range: menelusuri koleksi
range memberi index dan value pada slice, array, string, dan map.
buahs := []string{"apel", "jeruk", "mangga"}
for idx, buah := range buahs {
fmt.Println(idx, buah)
}
Gunakan _ untuk mengabaikan salah satunya:
for _, buah := range buahs { ... } // tanpa index
for idx := range buahs { ... } // tanpa value
Pada string, range menelusuri rune (karakter), bukan byte.
Perulangan bersarang dan label
luar:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 2 { continue luar }
}
}
Jebakan: infinite loop
Pastikan syarat suatu saat menjadi false. Di Playground, program yang berjalan terlalu lama akan dihentikan.