Kotlin Academy · Oppitunti

when lausekkeena

Palauta arvoja when-lausekkeesta

Oppitunti 1/413 vaihetta

when lausekkeena on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

when-lauseke

Kotlinin when on enemmän kuin switch-lause. Se on lauseke, eli se tuottaa arvon, jonka voitte sijoittaa muuttujaan tai palauttaa.

Tämä tekee haarautuvasta logiikasta tiivistä ja helposti luettavaa.

Arvon palauttaminen

Lausekkeena käytettynä jokainen haara tuottaa tuloksen. Osuvan haaran arvosta tulee koko when-lausekkeen tulos.

fun main() {
    val day = 3
    val name = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        else -> "Other"
    }
    println(name)
}

else vaaditaan

Lausekkeena käytetyn when-lausekkeen on katettava kaikki mahdolliset tapaukset. Mielivaltaisille arvoille tämä tarkoittaa else-haaraa.

Ilman sitä kääntäjä ei voi varmistaa, että lauseke tuottaa arvon.

fun grade(score: Int): String = when {
    score >= 90 -> "A"
    score >= 80 -> "B"
    else -> "C"
}

fun main() {
    println(grade(85))
}

Useita arvoja haaraa kohti

Erottakaa useat arvot pilkuilla, jos haluatte niiden käyttävän samaa haaraa.

Näin vältätte saman rungon toistamisen.

fun main() {
    val day = 6
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    println(type)
}

when ilman argumenttia

Jättäkää kohde pois, jolloin jokaisesta haarasta tulee totuusarvoinen ehto.

Tämä korvaa if/else if -ketjun siistillä lohkolla.

fun main() {
    val temp = 18
    val feel = when {
        temp < 0 -> "Freezing"
        temp < 15 -> "Cold"
        temp < 25 -> "Mild"
        else -> "Hot"
    }
    println(feel)
}

Välit haaroissa

Haaroissa voidaan testata välejä in-operaattorilla.

Näin numeeriset luokat voidaan ilmaista hyvin luontevasti.

fun main() {
    val score = 73
    val band = when (score) {
        in 0..59 -> "Fail"
        in 60..79 -> "Pass"
        in 80..100 -> "Excellent"
        else -> "Invalid"
    }
    println(band)
}

Tyyppitarkistukset haaroissa

Haaroissa voidaan tarkistaa tyyppejä is-operaattorilla.

Kunkin haaran tulos voi olla erilainen, ja when palauttaa yhteisen tyypin.

fun describe(x: Any): String = when (x) {
    is Int -> "Integer"
    is String -> "Text"
    else -> "Unknown"
}

fun main() {
    println(describe(42))
    println(describe("hi"))
}

Haaralohkot

Haara voi olla useita lauseita sisältävä lohko. Lohkon viimeinen lauseke on sen arvo.

fun main() {
    val n = 5
    val result = when {
        n > 0 -> {
            val doubled = n * 2
            "Positive, doubled is " + doubled
        }
        else -> "Non-positive"
    }
    println(result)
}

when-lausekkeen palauttaminen suoraan

Funktio voi palauttaa when-lausekkeen suoraan yksilausekkeisella rungolla.

Tämä on hyvin yleinen ja selkeä Kotlin-tyyli.

fun sign(n: Int): String = when {
    n > 0 -> "positive"
    n < 0 -> "negative"
    else -> "zero"
}

fun main() {
    println(sign(-4))
}

Kohteen tallentaminen

Voitte määrittää kohteen when-lausekkeen sisällä, jolloin se on käytettävissä haaroissa.

Näin väliaikaisen arvon näkyvyysalue pysyy mahdollisimman rajattuna.

fun describeLength(text: String): String = when (val len = text.length) {
    0 -> "empty"
    in 1..5 -> "short (" + len + ")"
    else -> "long (" + len + ")"
}

fun main() {
    println(describeLength("hello"))
}

Kootaan kokonaisuus

Lausekkeena when on tehokas arvojen tuottaja:

  • Jokainen haara tuottaa tuloksen
  • else tekee lausekkeesta kattavan
  • Tukee pilkuilla erotettuja arvoja, välejä, tyyppejä ja lohkoja
fun ticketPrice(age: Int): Int = when {
    age < 6 -> 0
    age < 18 -> 10
    age >= 65 -> 8
    else -> 15
}

fun main() {
    println(ticketPrice(4))
    println(ticketPrice(70))
}

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte when-lausekkeen käytön lausekkeena.

Kertaus

Opitte käyttämään when-lauseketta lausekkeena:

  • Se palauttaa osuvan haaran arvon
  • Se tarvitsee else-haaran ollakseen kattava
  • Se tukee pilkuilla erotettuja arvoja, välejä, tyyppitarkistuksia ja lohkoja

Seuraavaksi näette, miten smart castit auttavat kääntäjää kaventamaan tyyppejä puolestanne.

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
51
Oppitunnit
203

Usein kysytyt kysymykset

Onko oppitunti ”when lausekkeena” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “when lausekkeena”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”when lausekkeena”?

Palauta arvoja when-lausekkeesta Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”when lausekkeena”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. when lausekkeena
  2. Älykkäät tyyppimuunnokset
  3. is- ja as-operaattorit
  4. Kattava when-lauseke
← Takaisin: Kotlin Academy