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 para definir 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, 3El operador de rango semiabierto (..<) excluye el límite superior, lo que resulta especialmente útil al trabajar con índices basados en cero:
for i in 0..<3 {
print(i)
}
// Salida: 0, 1, 2A veces necesitas recorrer 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, 1Observa los paréntesis alrededor del rango: son necesarios al llamar a reversed() en un rango. Esta técnica es perfecta para las cuentas regresivas o cuando necesitas procesar elementos del último al primero.
Desafío
FácilEscribe 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 de
1ane inviértelo - Construye una cadena con cada número separado por un salto de línea
- Agrega "Go!" en la línea final
Parámetros:
n(Int): El número inicial de la cuenta regresiva (1 o mayor)
Devuelve: Una cadena con cada número de la cuenta regresiva en su propia línea, que termina en "Go!" (String). Formato:
3
2
1
Go!Por ejemplo, si n es 3, la función devuelve "3\n2\n1\nGo!".
Pruébalo tú mismo
func countdown(n: Int) -> String {
// 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 compuestaRepaso: matemáticas simplesOperadores de comparación7Entrada/salida básica
Función printInterpolación de cadenasEntrada con ReadLineConversión de tiposRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosRepaso: función SigmaRepaso: función de validaciónValores predeterminados13Iteración sobre secuencias
Iteración sobre elementosEl método enumeradoIteración sobre cadenas P1Iteración sobre cadenas P22Variables
Let vs VarAnotaciones de tipoNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesenvolver con If LetGuard LetOperador de coalescencia nilRepaso: desenvoltura segura6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Swift