Cerrados vs. Semiabiertos
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 7 de 56.
Swift tiene dos operadores de rango que se ven casi idénticos pero significan cosas diferentes.
a...b es el rango cerrado. Incluye b:
for i in 1...3 { print(i) }
// 1
// 2
// 3a..<b es el rango semiabierto. Se detiene antes de b:
for i in 1..<3 { print(i) }
// 1
// 2El rango semiabierto es el ajuste natural cuando tienes un conteo: 0..<arr.count cubre cada índice válido del arreglo. Usa el rango cerrado cuando ambos extremos sean valores reales que te interesen (como un rango de puntuación o un límite de calificación inclusivo).
Desafío
FácilLee dos enteros (dos líneas): a y b, con a <= b. Imprime tres líneas:
- Los valores en el rango cerrado
a...b, unidos con,en una línea - Los valores en el rango semiabierto
a..<b, unidos con,(o una línea vacía cuando el rango está vacío) - La suma de cada valor en el rango cerrado
Para la entrada 1 y luego 5, la salida es:
1,2,3,4,5
1,2,3,4
15Hoja de referencia
Operadores de rango en Swift:
a...b— rango cerrado, incluye tantoacomoba..<b— rango semiabierto, incluyeapero se detiene antes deb
for i in 1...3 { print(i) } // 1, 2, 3
for i in 1..<3 { print(i) } // 1, 2Usa 0..<arr.count para cubrir cada índice de array válido. Usa rangos cerrados cuando ambos puntos finales sean valores significativos.
Pruébalo tú mismo
let a = Int(readLine()!)!
let b = Int(readLine()!)!
// TODO: imprimir el rango cerrado unido, el rango semiabierto unido, la suma del rango cerrado
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