Menu
Coddy logo textTech

Expresión when

Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 32 de 93.

Cuando tienes varios valores específicos que comprobar, las cadenas largas de instrucciones else if pueden resultar difíciles de leer. Kotlin proporciona la expresión when como una alternativa más clara para comparar un valor con múltiples posibilidades.

fun main() {
    val day = 3
    
    val dayName = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        4 -> "Thursday"
        5 -> "Friday"
        else -> "Weekend"
    }
    
    println(dayName)  // Imprime: Wednesday
}

La expresión when toma un valor y lo compara con cada rama. Cuando se encuentra una coincidencia, se devuelve el resultado correspondiente. La rama else gestiona cualquier valor que no coincida con los casos enumerados.

También puedes hacer coincidir varios valores en una sola rama separándolos con comas:

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

Un when que produce un valor debe ser exhaustivo: cada entrada posible debe tener un resultado. Estos ejemplos de enteros necesitan else, pero un when booleano con ramas tanto para true como para false no.

challenge icon

Desafío

Fácil

Se te proporciona la siguiente variable:

val month = 4

Usa una expresión when para determinar la estación según el número del mes y almacena el resultado en una variable llamada season.

Condiciones:

  • Los meses 12, 1, 2 deben devolver "Winter"
  • Los meses 3, 4, 5 deben devolver "Spring"
  • Los meses 6, 7, 8 deben devolver "Summer"
  • Los meses 9, 10, 11 deben devolver "Fall"
  • Cualquier otro valor debe devolver "Invalid month"

Usa valores separados por comas en las ramas de tu when para agrupar los meses que pertenecen a la misma estación.

Imprime el valor de season.

Pruébalo tú mismo

fun main() {
    val month = 4
    
    // TODO: Escribe tu código debajo
    // Usa una expresión when para determinar la estación basándote en el mes
    // Almacena el resultado en una variable llamada 'season'
    
    
    // Imprime el resultado
    println(season)
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Kotlin