When con rangos
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 33 de 93.
A veces necesitas comprobar si un valor se encuentra dentro de un rango en lugar de coincidir con valores específicos. La expresión when admite esto mediante la palabra clave in combinada con rangos.
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println(grade) // Imprime: B
}La palabra clave in comprueba si el valor existe dentro del rango especificado. Aquí, 85 se encuentra dentro de 80..89, por lo que la calificación es "B". Esto es mucho más limpio que escribir score >= 80 && score <= 89 para cada condición.
También puedes combinar rangos con valores específicos en la misma expresión when:
fun main() {
val age = 17
val category = when (age) {
0 -> "Newborn"
in 1..12 -> "Child"
in 13..19 -> "Teenager"
else -> "Adult"
}
println(category) // Imprime: Teenager
}Los rangos hacen que tu código sea más legible al trabajar con condiciones numéricas continuas, algo común en los sistemas de calificación, las categorías de edad y situaciones similares.
Desafío
FácilEscribe una función getTicketPrice que reciba age y devuelva el precio de la entrada según la categoría de edad de la persona.
Usa una expresión when con rangos para determinar el precio de entrada correspondiente.
Condiciones:
- Edad de
0a3: devuelve0(gratis) - Edad de
4a12: devuelve10(precio infantil) - Edad de
13a17: devuelve15(precio para adolescentes) - Edad de
18a64: devuelve25(precio para adultos) - Edad de
65en adelante: devuelve12(precio para personas mayores)
Parámetros:
age(Int): La edad de la persona
Devuelve: El precio de la entrada como un entero (Int)
Pruébalo tú mismo
fun getTicketPrice(age: Int): Int {
// Escribe el código aquí
}
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