Menu
Coddy logo textTech

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
// 3

a..<b es el rango semiabierto. Se detiene antes de b:

for i in 1..<3 { print(i) }
// 1
// 2

El 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).

challenge icon

Desafío

Fácil

Lee dos enteros (dos líneas): a y b, con a <= b. Imprime tres líneas:

  1. Los valores en el rango cerrado a...b, unidos con , en una línea
  2. Los valores en el rango semiabierto a..<b, unidos con , (o una línea vacía cuando el rango está vacío)
  3. 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
15

Hoja de referencia

Operadores de rango en Swift:

  • a...brango cerrado, incluye tanto a como b
  • a..<brango semiabierto, incluye a pero se detiene antes de b
for i in 1...3 { print(i) } // 1, 2, 3
for i in 1..<3 { print(i) } // 1, 2

Usa 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
quiz iconPonte a prueba

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