Darsliklar Kotlin When(Tanlash Operatori)

Kotlin Kotlin When(Tanlash Operatori)

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.

whenbir qiymatni bir necha variant bilan solishtirib, mos kelganini bajaradigan Kotlin operatori. U switch ning 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.