Menu
Coddy logo textTech

Rangos en bucles

Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 48 de 86.

Has estado usando rangos como 1...5 en tus bucles, pero Swift ofrece más flexibilidad en cómo defines estos rangos. Exploremos los diferentes tipos de rangos y una técnica útil para contar hacia atrás.

El operador de rango cerrado (...) incluye ambos extremos:

for i in 1...3 {
    print(i)
}
// Salida: 1, 2, 3

El operador de rango semiabierto (..<) excluye el límite superior, lo cual es especialmente útil cuando se trabaja con índices basados en cero:

for i in 0..<3 {
    print(i)
}
// Salida: 0, 1, 2

A veces necesitas iterar en orden inverso. El método reversed() te permite iterar hacia atrás a través de un rango:

for i in (1...3).reversed() {
    print(i)
}
// Salida: 3, 2, 1

Observa los paréntesis alrededor del rango; son obligatorios al llamar a reversed() en un rango. Esta técnica es perfecta para cuentas regresivas o cuando necesitas procesar elementos del último al primero.

challenge icon

Desafío

Fácil

Escribe una función countdown que reciba n y devuelva una cadena que contenga una cuenta regresiva desde n hasta 1, seguida de "Go!".

Usa el método reversed() en un rango para iterar hacia atrás y construir la cadena de la cuenta regresiva.

Lógica:

  • Crea un rango desde 1 hasta n e inviértelo
  • Construye una cadena con cada número separado por un salto de línea
  • Añade "Go!" en la línea final

Parámetros:

  • n (Int): El número inicial para la cuenta regresiva (1 o mayor)

Devuelve: Una cadena con cada número de la cuenta regresiva en su propia línea, terminando con "Go!" (String). Formato:

3
2
1
Go!

Por ejemplo, si n es 3, la función devuelve "3\n2\n1\nGo!".

Hoja de referencia

Swift proporciona dos operadores de rango para los bucles:

El operador de rango cerrado (...) incluye ambos extremos:

for i in 1...3 {
    print(i)
}
// Salida: 1, 2, 3

El operador de rango semiabierto (..<) excluye el límite superior:

for i in 0..<3 {
    print(i)
}
// Salida: 0, 1, 2

Para iterar hacia atrás a través de un rango, utiliza el método reversed():

for i in (1...3).reversed() {
    print(i)
}
// Salida: 3, 2, 1

Nota: Se requieren paréntesis alrededor del rango al llamar a reversed().

Pruébalo tú mismo

func countdown(n: Int) -> String {
    // Escribe el código aquí
}
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 Fundamentos