CodeBlanks Logo Icon CodeBlanks

switch ve fallthrough

switch ile çoklu koşul ve fallthrough davranışını öğrenirsin.

switch ve fallthrough

switch bir değeri birden çok olasılıkla karşılaştırır. Bir case virgülle birden çok değer alabilir; eşleşen case bitince switch biter:

switch gun {
case "Cumartesi", "Pazar":
    fmt.Println("hafta sonu")
case "Cuma":
    fmt.Println("son iş günü")
default:
    fmt.Println("iş günü")
}

Bir sonraki case'e bilerek geçmek için fallthrough yazılır; nadiren gerekir.

Koşulsuz switch

Değer verilmeyen switch, uzun if-else zincirlerinin okunur hâlidir; her case bir bool ifadesidir:

switch {
case sicaklik < 0:
    fmt.Println("donuyor")
case sicaklik < 20:
    fmt.Println("serin")
default:
    fmt.Println("sıcak")
}

Case'ler yukarıdan aşağı denenir; ilk doğru olan çalışır.

Uygulama Gün türü

gunTuru(gun string) string yaz: "Cumartesi" ve "Pazar" için "hafta sonu", diğerleri için "iş günü". gunTuru("Pazar") ve gunTuru("Salı") sonuçlarını tek satırda yazdır.

Başlangıç kodu

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import "fmt"

func gunTuru(gun string) string {
    switch gun {
    case "Cumartesi", "Pazar":
        return "hafta sonu"
    default:
        return "iş günü"
    }
}

func main() {
    fmt.Println(gunTuru("Pazar"), gunTuru("Salı"))
}

Beklenen çıktı

hafta sonu iş günü

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>fallthrough</code> sonraki case'in koşulunu kontrol eder mi?

  • Tüm case'leri çalıştırır
  • default'a atlar
  • Hayır; koşula bakmadan sonraki case'in gövdesini çalıştırır Doğru cevap
  • Evet, koşul doğruysa çalıştırır

Açıklama: fallthrough koşulsuz geçiştir; bu yüzden şaşırtıcı davranışlara yol açabilir ve dikkatli kullanılır.

2 Çoklu değer

Soru
switch gun {
case "Cumartesi"____ "Pazar":
    fmt.Println("hafta sonu")
}
Cevap
switch gun {
case "Cumartesi", "Pazar":
    fmt.Println("hafta sonu")
}

Açıklama: Bir case birden çok değeri virgülle ayırarak alır.

3 Girdi ve çıktı

Kavram Anlamı
"Pazar" hafta sonu
"Cuma" son iş günü
"Salı" iş günü (default)
sicaklik = -3 donuyor

Başlangıç bölümündeki tüm dersler