Rangos en Switch
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 10 de 56.
Usaste switch con rangos en los fundamentos. El mismo truco se escala a problemas de clasificación reales donde cada caso cubre un rango de valores.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// warmEl primer case ..<0 usa la forma de rango unilateral: "cualquier valor estrictamente menor que 0". También puedes usar 0... para indicar "0 o mayor" también.
Los casos se evalúan de arriba hacia abajo y el primero que coincida gana, así que ordénalos de menor a mayor (o usa default para el caso general).
Desafío
PrincipianteLee un único número entero de la entrada: una temperatura en Celsius. Imprime una de estas etiquetas usando un único switch con casos de rango:
- Por debajo de
0(negativos):freezing 0...9:cold10...19:mild20...29:warm30...39:hot40y superior:scorching
Para la entrada 22, la salida es warm.
Hoja de referencia
Usa switch con casos de rango para clasificar valores. Los casos se comprueban de arriba hacia abajo; la primera coincidencia gana.
let temp = 22
switch temp {
case ..<0: print("freezing") // unilateral: cualquier cosa por debajo de 0
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot") // comodín para el resto
}
// warm..<0— rango unilateral: cualquier valor estrictamente menor que 040...— rango unilateral: 40 o superior- Ordena los casos de menor a mayor; usa
defaultpara el resto de los casos
Pruébalo tú mismo
let temp = Int(readLine()!)!
// TODO: usar switch sobre temp usando rangos, imprimir la etiqueta coincidente
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras