Go Academy · Pelajaran

Pernyataan switch di Go

switch bertanda dan tanpa tanda, serta fallthrough

Pelajaran 3 dari 412 langkah

Pernyataan switch di Go adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Dasar-Dasar switch

switch Go lebih kuat daripada di C: tidak ada peloncatan implisit ke kasus berikutnya secara bawaan, dan kasus dapat memiliki beberapa nilai:

day := "Monday"
switch day {
case "Saturday", "Sunday":
    fmt.Println("Weekend")
default:
    fmt.Println("Weekday")
}

Tanpa Peloncatan Implisit

Di Go, setiap isi case berhenti secara otomatis — berbeda dari C yang mengharuskan Anda menulis break secara eksplisit:

  • Kode lebih rapi dan lebih sedikit bug
  • Gunakan fallthrough secara eksplisit jika Anda memerlukan perilaku seperti C (jarang diperlukan)

switch dengan Pernyataan Inisialisasi

Seperti if, switch menerima pernyataan inisialisasi opsional:

switch os := runtime.GOOS; os {
case "linux":
    fmt.Println("Linux")
case "darwin":
    fmt.Println("macOS")
default:
    fmt.Printf("Other: %s\n", os)
}

switch Tanpa Tag (Alternatif Rangkaian if-else)

Switch tanpa tag tidak memiliki ekspresi setelah kata kunci — setiap kasus mengevaluasi boolean:

score := 75
switch {
case score >= 90:
    fmt.Println("A")
case score >= 80:
    fmt.Println("B")
case score >= 70:
    fmt.Println("C")
default:
    fmt.Println("F")
}

switch Tipe

Switch tipe memeriksa tipe dinamis dari nilai antarmuka:

func describe(i interface{}) {
    switch v := i.(type) {
    case int:
        fmt.Printf("int: %d\n", v)
    case string:
        fmt.Printf("string: %s\n", v)
    default:
        fmt.Printf("unknown: %T\n", v)
    }
}

fallthrough

Gunakan fallthrough untuk mengeksekusi isi kasus berikutnya secara eksplisit, apa pun kondisinya (jarang diperlukan):

n := 1
switch n {
case 1:
    fmt.Println("one")
    fallthrough
case 2:
    fmt.Println("one or two")
}

Beberapa Nilai per Kasus

Daftarkan beberapa nilai yang dipisahkan koma dalam satu kasus:

func isVowel(c byte) bool {
    switch c {
    case 'a', 'e', 'i', 'o', 'u':
        return true
    }
    return false
}

switch dibandingkan dengan if-else

Gunakan switch ketika:

  • Anda membandingkan satu ekspresi dengan banyak nilai
  • Anda memiliki switch tipe untuk pemilihan berdasarkan antarmuka
  • Keterbacaan meningkat dibandingkan dengan rangkaian if-else

Gunakan if-else ketika kondisinya merupakan ekspresi boolean yang berbeda.

break dalam switch

Untuk keluar dari switch lebih awal, gunakan break. Untuk keluar dari perulangan luar dari dalam switch, gunakan break berlabel:

loop:
for {
    switch input() {
    case "quit":
        break loop  // exits the for loop
    }
}

Kasus Default

Kasus default dijalankan ketika tidak ada kasus lain yang cocok. Praktik terbaik:

  • Selalu sertakan default saat menangani enumerasi — untuk menangkap nilai yang tidak terduga
  • Letakkan di bagian bawah agar lebih mudah dibaca
  • Dalam switch tipe, gunakan default untuk menangani tipe yang tidak didukung dengan baik

Pemeriksaan Singkat

Apa yang terjadi di Go ketika sebuah kasus switch cocok — apakah eksekusi berlanjut ke kasus berikutnya?

Ringkasan: switch di Go

Switch Go rapi dan kuat:

  • Tidak ada peloncatan implisit ke kasus berikutnya — gunakan fallthrough secara eksplisit
  • Pernyataan inisialisasi untuk membatasi lingkup variabel sementara
  • Switch tanpa tag sebagai alternatif rangkaian if-else
  • Switch tipe untuk pemilihan berdasarkan antarmuka
  • Beberapa nilai per kasus yang dipisahkan dengan koma

Berikutnya: kontrol perulangan dengan break, continue, dan label.

Gratis untuk memulai

Belajar Go dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pernyataan switch di Go” gratis?

Ya — teks lengkap “Pernyataan switch di Go” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pernyataan switch di Go”?

switch bertanda dan tanpa tanda, serta fallthrough Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pernyataan switch di Go” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pernyataan if dan Ekspresi Init
  2. Perulangan for: Semua Pola
  3. Pernyataan switch di Go
  4. break, continue, dan Label
← Kembali ke Go Academy