CodeBlanks Logo Icon CodeBlanks

when

when ile çoklu durum seçmeyi öğrenirsin.

when deyimi

when, bir değeri birden çok olası durumla karşılaştırır. Java'daki switch'e benzer ama daha güçlüdür. Her dal -> ile yazılır.

val day = 3
when (day) {
    1 -> println("Pazartesi")
    2 -> println("Salı")
    3 -> println("Çarşamba")
    else -> println("Bilinmiyor")
}

day 3 olduğu için 3 -> dalı çalışır ve "Çarşamba" yazdırılır. Eşleşme bulunamazsa else dalı çalışır.

when daha okunaklıdır; uzun if/else if zincirlerinin yerine geçer.

Uygulama Gün numarasını ada çevir

Bir fun main() yaz. val day değişkenine 3 ata. when (day) ile gün adını yazdır: 1 "Pazartesi", 2 "Salı", 3 "Çarşamba", else "Bilinmiyor".

Başlangıç kodu

Main.kt
fun main() {
    // Gün numarasını ada çevir
}

Örnek çözüm

Main.kt
fun main() {
    val day = 3
    when (day) {
        1 -> println("Pazartesi")
        2 -> println("Salı")
        3 -> println("Çarşamba")
        else -> println("Bilinmiyor")
    }
}

Beklenen çıktı

Çarşamba

Çoklu değer ve aralık dalları

when dalları birden çok değeri virgülle listeleyebilir veya aralıklar (in) kullanabilir.

val n = 5
when (n) {
    1, 2, 3 -> println("Küçük")
    in 4..7 -> println("Orta")
    else -> println("Büyük")
}

n 5 olduğu için in 4..7 dalı çalışır ve "Orta" yazdırılır. Aralıklar .. ile yazılır; bunu ileride detaylı göreceksin.

Hiçbir dal eşleşmezse else çalışır. else zorunlu değildir ama eşleşme yoksa hiçbir şey çalışmaz.

Soru ve cevaplar

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

1 when (day) { ... } hangi değerle karşılaştırma yapar?

  • sabit bir değerle
  • day değişkeniyle Doğru cevap
  • Boolean ile
  • rastgele değerle

Açıklama: when (day), day değişkeninin değerini dallarla karşılaştırır.

2 when dalını tamamla

Soru
when (day) {
    1 -> println("Pazartesi")
    2 -> println("Salı")
    ____ -> println("Çarşamba")
}
Cevap
when (day) {
    1 -> println("Pazartesi")
    2 -> println("Salı")
    3 -> println("Çarşamba")
}

Açıklama: 3 -> println("Çarşamba") üçüncü günü yakalar.

3 when biçimlerini eşleştir

Kavram Anlamı
1 -> ... Tek değer dalı
1, 2 -> ... Çoklu değer dalı
in 4..7 -> ... Aralık dalı
else -> ... Varsayılan dal

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