0Pricing
Kotlin Academy · Leçon

when comme expression

Renvoyer des valeurs depuis when

when comme expression est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.

when en tant qu’expression

En Kotlin, when est bien plus qu’une instruction de sélection. C’est une expression, ce qui signifie qu’elle produit une valeur que vous pouvez affecter ou retourner.

La logique de branchement devient ainsi concise et lisible.

Retourner une valeur

Utilisée comme expression, chaque branche fournit un résultat. La valeur de la branche correspondante devient le résultat de l’ensemble when.

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

else est obligatoire

Utilisé comme expression, when doit couvrir tous les cas. Pour des valeurs quelconques, cela signifie qu’il faut une branche else.

Sans elle, le compilateur ne peut pas garantir qu’une valeur sera produite.

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

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

Plusieurs valeurs par branche

Séparez plusieurs valeurs par des virgules pour les associer à une même branche.

C’est plus clair que de répéter le même bloc.

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

when sans argument

Omettez le sujet : chaque branche devient alors une condition booléenne.

Cela remplace une chaîne de if/else if par un bloc clair.

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

Intervalles dans les branches

Les branches peuvent vérifier des intervalles avec in.

Cela permet d’exprimer très naturellement des catégories numériques.

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)
}

Vérifications de type dans les branches

Les branches peuvent vérifier les types avec is.

Le résultat de chaque branche peut être différent, et when renvoie le type commun.

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

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

Blocs de branche

Une branche peut être un bloc contenant plusieurs instructions. La dernière expression du bloc constitue sa valeur.

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

Retourner when directement

Une fonction peut retourner directement une expression when avec un corps constitué d’une seule expression.

C’est un style Kotlin très courant et clair.

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

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

Capturer le sujet

Vous pouvez déclarer le sujet à l’intérieur de when afin qu’il soit disponible dans les branches.

La portée d’une valeur temporaire reste ainsi strictement limitée.

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"))
}

Tout mettre en pratique

En tant qu’expression, when est un puissant producteur de valeurs :

  • Chaque branche fournit un résultat
  • else garantit que tous les cas sont couverts
  • Les virgules, les intervalles, les types et les blocs sont pris en charge
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))
}

Vérification rapide

Vérifiez votre compréhension de when en tant qu’expression.

Récapitulatif

Vous avez appris à utiliser when comme expression :

  • Il renvoie la valeur de la branche correspondante
  • Il nécessite else pour couvrir tous les cas
  • Il prend en charge les virgules, les intervalles, les vérifications de type et les blocs

Vous allez maintenant découvrir comment les conversions intelligentes permettent au compilateur de préciser automatiquement les types.

Questions Fréquemment Posées

La leçon « when comme expression » est-elle gratuite ?

Oui — le texte complet de « when comme expression » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « when comme expression » ?

Renvoyer des valeurs depuis when Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kotlin Academy ?

Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « when comme expression » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?

Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. when comme expression
  2. Casts intelligents
  3. Opérateurs is et as
  4. when exhaustif
← Retour à Kotlin Academy