Percabangan: if, else & switch
Mengambil keputusan dengan if/else dan switch (tanpa break).
if dan else
nilai := 82
if nilai >= 90 {
fmt.Println("A")
} else if nilai >= 75 {
fmt.Println("B")
} else {
fmt.Println("C")
}
Aturan Go: tanpa tanda kurung di sekitar kondisi, tetapi kurung kurawal wajib, dan else harus satu baris dengan }.
if dengan pernyataan awal
Ciri khas Go: kamu boleh menaruh pernyataan singkat sebelum kondisi. Variable-nya hanya hidup di blok if tersebut.
if n, err := strconv.Atoi("42"); err == nil {
fmt.Println("angka:", n)
}
Pola ini sangat umum untuk memeriksa error.
switch
hari := "minggu"
switch hari {
case "sabtu", "minggu":
fmt.Println("Libur")
case "senin":
fmt.Println("Mulai kerja")
default:
fmt.Println("Hari biasa")
}
- Satu case boleh memuat banyak nilai (dipisah koma).
- Berbeda dari C/Java, Go otomatis berhenti setelah satu case — tidak perlu
break. - Gunakan
fallthroughjika memang ingin lanjut ke case berikutnya (jarang).
switch tanpa ekspresi
Mirip rangkaian if-else, tetapi lebih rapi:
skor := 82
switch {
case skor >= 90:
fmt.Println("A")
case skor >= 75:
fmt.Println("B")
default:
fmt.Println("C")
}
Type switch (sekilas)
switch v := x.(type) {
case int: fmt.Println("int", v)
case string: fmt.Println("string", v)
}
Akan lebih bermakna setelah kamu mempelajari interface.