when (tanlash operatori) — Kotlin’da switch ning o’rnini bosuvchi, ammo undan ancha kuchli operator. U bitta qiymatni ko’plab variantlar bilan solishtiradi. when Java’dagi switch dan ixchamroq, xavfsizroq va moslashuvchanroq — u qiymat ham qaytaradi.
when — bir qiymatni bir necha variant bilan solishtirib, mos kelganini bajaradigan Kotlin operatori. U
switchning kuchli va zamonaviy muqobilidir.
Oddiy when
when berilgan qiymatni har bir variant bilan solishtiradi:
fun main() {
val kun = 3
when (kun) {
1 -> println("Dushanba")
2 -> println("Seshanba")
3 -> println("Chorshanba")
else -> println("Noma'lum kun")
}
}
Chorshanba
kun qiymati 3 bo’lgani uchun 3 -> ... bajarildi. else esa hech qaysi variant mos kelmaganda ishlaydi. Diqqat: switch dan farqli, break shart emas — Kotlin faqat mos variantni bajaradi.
when — ifoda sifatida
if kabi, when ham qiymat qaytaradi. Uni to’g’ridan-to’g’ri o’zgaruvchiga berish mumkin:
fun main() {
val kun = 3
val nom = when (kun) {
1 -> "Dushanba"
2 -> "Seshanba"
3 -> "Chorshanba"
else -> "Noma'lum"
}
println(nom)
}
Chorshanba
val nom = when (...) — when natijasini to’g’ridan-to’g’ri o’zgaruvchiga berdi. Bu Kotlin’ning ixcham va nafis xususiyati.
Bir necha qiymat va oraliq
when bir variantda bir necha qiymat yoki oraliqni tekshirishi mumkin — bu switch da imkonsiz edi:
fun main() {
val ball = 85
val baho = when (ball) {
in 90..100 -> "A'lo"
in 70..89 -> "Yaxshi"
in 50..69 -> "Qoniqarli"
else -> "Qoniqarsiz"
}
println(baho)
}
Yaxshi
in 70..89 — oraliqni tekshirdi. ball 85 shu oraliqda bo’lgani uchun “Yaxshi” chiqdi. when oraliq, bir necha qiymat (1, 2 -> ...) va murakkab shartlarni qo’llab-quvvatlaydi — bu uni if va switch dan kuchliroq qiladi.
when va switch farqi
Kotlin when ning ustunliklarini jadvalda ko’ramiz:
| Xususiyat | Java switch |
Kotlin when |
|---|---|---|
break kerakmi |
ha | yo’q |
| Qiymat qaytaradimi | yo’q | ha |
Oraliq (in) |
yo’q | ha |
| Matn/har qanday tur | cheklangan | to’liq |
Xulosa
Bu bo’limda when operatori, uning ifoda sifatida qiymat qaytarishi, oraliq (in) va switch dan ustunliklarini ko’rib chiqdik. when — Kotlin’ning kuchli tanlash vositasidir. Keyingi darsda takrorlash operatorlari — while va do-while ga o’tamiz.