← Kembali ke kursus
Pelajaran kursus · Go
Pelajaran 12

Perulangan

Ulangi langkah dengan for dan for range.

Pahami konsepnya

for adalah satu-satunya kata kunci perulangan di Go. Bentuk lengkapnya punya tiga bagian — for i := 0; i < 5; i++ — yaitu nilai awal, syarat lanjut, dan langkah setiap putaran; ketiganya dipisah titik koma dalam satu baris.

Tulis syaratnya saja (for n < 10) dan ia bekerja seperti while di bahasa lain; tanpa syarat sama sekali (for {}) perulangan berjalan tanpa henti sampai bertemu break atau return. Di dalam putaran, break keluar dari perulangan dan continue melewatkan sisa putaran untuk langsung melompat ke putaran berikutnya.

for range adalah bentuk yang paling sering dipakai untuk menyusuri koleksi: slice dan array memberi indeks serta elemen, map memberi kunci serta nilai, dan string memberi indeks serta rune satu karakter. Perulangan bersarang bisa diberi label agar break dan continue menunjuk loop luar secara eksplisit.

Coba contoh kode

package main

import "fmt"

func main() {
    buah := []string{"apel", "mangga", "jeruk"}
    for i, nama := range buah {
        fmt.Println(i, nama)
    }
}

range mengembalikan dua nilai sekaligus yang di sini ditampung i dan nama. Bila indeks tidak diperlukan, ganti namanya dengan _ — menyisakan nama tak terpakai membuat Go menolak kompilasi. Keluarannya berpasangan: 0 apel, 1 mangga, 2 jeruk.

Perulangan berlabel

func main() {
    angka := [][]int{{1, 2}, {3, -1, 4}, {5}}
luar:
    for _, baris := range angka {
        for _, n := range baris {
            if n < 0 {
                break luar
            }
            fmt.Print(n, " ")
        }
    }
    fmt.Println() // 1 2 3
}

Label luar: ditempel di depan loop terluar, lalu break luar keluar dari KEDUA loop sekaligus — tanpa label, break hanya keluar dari loop terdalam dan angka 5 masih ikut tercetak. continue luar juga sah: melewati sisa iterasi luar.

Latihan singkat

Uji: lengkapi loop agar mencetak `7 x 1 = 7` sampai `7 x 10 = 70` — sepuluh baris persis.