Kotlin : when Expression
La construction when de Kotlin peut être considérée comme un remplacement de la déclaration switch de Java. Elle évalue une section de code parmi plusieurs alternatives. L'expression when de Kotlin fonctionne comme une instruction switch d'un autre langage (Java, C++, C).
Utilisation de when comme expression
Voyons un exemple simple de l'expression when.
fun main() {
println("PandaCodeur : Cours Kotlin\n")
var nombre = 4
var nombreFourni = when(nombre) {
1 -> "One" // (un)
2 -> "two" //(deux)
3 -> "Three" //(Trois)
4 -> "Four" //(Quatre)
5 -> "Five" //(cinq)
else -> "nombre invalide"
}
println("Vous avez fourni $nombreFourni")
println("\nPandaCodeur.com")
}
Sortie :
Utilisation de when sans expression
Il n'est pas obligatoire d'utiliser when comme une expression, il peut être utilisé aussi normalement qu'il est utilisé dans d'autres langues.
fun main(args : Array<String>){
var nombre = 4
when(nombre) {
1 -> println("Un")
2 -> println("Deux")
3 -> println("Trois")
4 -> println("Four")
5 -> println("Five")
else -> println("invalid number")
}
}
Sortie :
Four
Déclaration multiple à l'aide d'accolades
Nous pouvons utiliser plusieurs instructions dans un bloc de conditions.
fun main(args : Array<String>){
var nombre = 1
when(nombre) {
1 -> {
println("Lundi")
println("Premier jour de la semaine")
}
7 -> println("Dimanche")
else -> println("Autres jours")
}
}
Sortie :
Lundi
Premier jour de la semaine
Branchements multiples de conditions
Nous pouvons utiliser plusieurs branches de condition séparées par une virgule. On l'utilise quand on a besoin d'exécuter une même logique pour plusieurs choix.
fun main(args : Array<String>){
var nombre = 8
when(nombre) {
3, 4, 5, 6 ->
println("C'est la saison d'été")
7, 8, 9 ->
println("C'est la saison des pluies")
10, 11 ->
println("C'est la saison de l'automne")
12, 1, 2 ->
println("C'est la saison de l'hiver")
else -> println("entrée invalide")
}
}
Sortie :
C'est la saison des pluies
Utilisation de when dans la plage
L'expression when vérifie également les plages d'entrée fournies dans la condition when. Une plage est créée en utilisant l'opérateur .. (double point). L'opérateur in est utilisé pour vérifier si une valeur appartient à une plage.
Sortie :