when
- Kotlin kursu
- Başlangıç
- Ders 39/116
- 5 dk
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
fun main() {
// Gün numarasını ada çevir
}Örnek çözüm
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
when (day) {
1 -> println("Pazartesi")
2 -> println("Salı")
____ -> println("Çarşamba")
}
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 |