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.
Desafío
FácilSe te proporciona la siguiente variable:
val month = 4Usa 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,2deben devolver"Winter" - Los meses
3,4,5deben devolver"Spring" - Los meses
6,7,8deben devolver"Summer" - Los meses
9,10,11deben 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)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Kotlin