when ifadesi
- Kotlin kursu
- Başlangıç
- Ders 40/116
- 5 dk
when'in ifade olarak kullanımını öğrenirsin.
when ifadesi
Tıpkı if gibi, when de bir ifade olabilir ve değer döndürebilir. Bunun için dalların değer üretmesi ve else zorunlu olması gerekir.
val day = 3
val name = when (day) {
1 -> "Pazartesi"
2 -> "Salı"
3 -> "Çarşamba"
else -> "Bilinmiyor"
}
println(name) // ÇarşambaHer dal sağ tarafı bir değer olur; bu değer name'e atanır. day 3 olduğu için "Çarşamba" seçilir.
İfade biçimi, sonucu bir değişkende saklamak veya metoda parametre vermek için idealdir.
Uygulama when ifadesiyle gün adı ata
Bir fun main() yaz. val day değişkenine 2 ata. val name = when (day) { 1 -> "Pazartesi" 2 -> "Salı" 3 -> "Çarşamba" else -> "Bilinmiyor" } ifadesini yaz. println(name) ile sonucu yazdır.
Başlangıç kodu
fun main() {
// when ifadesi kullan
}Örnek çözüm
fun main() {
val day = 2
val name = when (day) {
1 -> "Pazartesi"
2 -> "Salı"
3 -> "Çarşamba"
else -> "Bilinmiyor"
}
println(name)
}Beklenen çıktı
Salı
Tükenmezlik (exhaustiveness)
when ifadesinde derleyici, tüm olası durumların kapsandığını kontrol eder. Buna tükenmezlik (exhaustiveness) denir.
val status = when (code) {
200 -> "Tamam"
404 -> "Bulunamadı"
500 -> "Sunucu hatası"
else -> "Bilinmiyor"
}code bir Int olduğu için tüm değerleri listelemek imkânsızdır; bu yüzden else zorunludur. Ama Boolean gibi ikili türlerde else gerekmez.
Eğer else yoksa ve bir değer kaçarsa derleme hatası alırsın.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 when biçimlerini eşleştir
| Kavram | Anlamı |
|---|---|
val n = when (x) { ... } |
İfade |
when (x) { println(...) } |
Deyim |
1 -> "A" |
Değer dalı |
else -> "?" |
Varsayılan |
2 when dalını tamamla
val name = when (day) {
1 -> "Pazartesi"
____ -> "Salı"
else -> "Bilinmiyor"
}
val name = when (day) {
1 -> "Pazartesi"
2 -> "Salı"
else -> "Bilinmiyor"
}
Açıklama: 2 -> "Salı" ikinci günü yakalar.
3 when ifadesinde else ne zaman zorunlu?
- Hiçbir zaman
- Yalnızca 2 dal varsa
- Sonuç bir değere atanacaksa Doğru cevap
- Her zaman zorunlu
Açıklama: when ifade olarak değer döndürüyorsa else zorunludur.