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
elsegarantit 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
elsepour 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
- when comme expression
- Casts intelligents
- Opérateurs is et as
- when exhaustif