Estructura de Control "When" en Kotlin: Uso y Ejemplos Prácticos
Clase 14 de 37 • Curso de Kotlin desde Cero
Resumen
¿Qué es la estructura de control when
?
La estructura de control when
en Kotlin puede ser una herramienta poderosa en la programación al permitir comparar una sola condición y ejecutar varios bloques de código dependiendo del resultado de esa condición. Es una alternativa más legible y organizada frente al uso de múltiples sentencias if
.
¿Cómo se utiliza when
en Kotlin?
Para comprender cómo funciona when
, exploremos su utilización con un ejemplo concreto donde trabajamos con una variable que representa un color.
val nombreColor = "amarillo"
when (nombreColor) {
"amarillo" -> println("El amarillo es el color de la alegría")
"rojo" -> println("El rojo simboliza el calor")
else -> println("Error, no tengo información del color")
}
- Código Explicación:
- Declara una variable
nombreColor
. - Usa
when
para comparar el valor denombreColor
. - Dependiendo del valor, se ejecuta el bloque de código asociado.
- Utiliza
else
para manejar valores no contemplados en los casos anteriores.
- Declara una variable
¿Cómo comparar múltiples valores en when
?
Imagina que necesitas manejar varios tonos de un color similar, como rojo y carmesí. En lugar de repetir el mismo bloque de código, when
facilita la agrupación de valores.
when (nombreColor) {
"amarillo" -> println("El amarillo es el color de la alegría")
"rojo", "carmesí" -> println("El rojo simboliza el calor")
else -> println("Error, no tengo información del color")
}
- Uso de Comas: Permiten agrupar condiciones que ejecutan el mismo bloque de código.
¿Cómo funciona when
con rangos de valores?
when
no se limita a cadenas de texto. Puede trabajar también con enteros y rangos de valores, lo cual es extremadamente útil.
val codigo = 200
when (codigo) {
in 200..299 -> println("Todo ha ido bien")
in 400..500 -> println("Algo ha fallado")
else -> println("Código desconocido, algo ha fallado")
}
- Rangos: Utiliza
in
para verificar si un número está dentro de un rango. Los rangos se especifican con..
.
¿Puede when
asignar valores?
Como if
, when
puede asignar valores a variables. Aquí hay un ejemplo en relación con la disponibilidad de tallas de zapatos:
val tallaZapatos = 41
val mensaje = when (tallaZapatos) {
41, 43 -> "Tenemos disponible"
42, 44 -> "Casi no nos queda"
45 -> "Lo siento, no tenemos disponible"
else -> "Estos zapatos solo vienen en algunas tallas"
}
println(mensaje)
- Asignación: El bloque
when
determina el contenido de la variablemensaje
basada en el valor detallaZapatos
. - Exhaustividad: Para asignar,
when
debe cubrir todas las posibilidades, utilizandoelse
si es necesario para otros casos no definidos.
Consejos prácticos para usar when
- Legibilidad:
when
es a menudo más legible que múltiplesif
y es recomendable usarlo cuando una sola variable es comparada contra valores múltiples. - Claridad: Aumenta la claridad del código, especialmente con rangos o múltiples condiciones.
- Mantenibilidad: Al reducir la repetición de código, se facilita el mantenimiento.
Continúa explorando y practicando para comprender cómo esta herramienta optimiza no solo el funcionamiento, sino también la claridad de tu código en Kotlin. ¡Sigue adelante, cada línea escrita es un paso más hacia el dominio de la programación!