Estructura de control de flujo: For-in

El bucle 'for in' es una estructura fundamental en Swift que se utiliza para iterar sobre una colección de elementos, como arrays, diccionarios o rangos. Al usar 'for in', puedes realizar operaciones en cada elemento de la colección de forma sencilla y eficiente, lo que simplifica el código y hace que sea más fácil de leer y mantener.

Contenido { }

Ejercicios { }

Estructura básica de un For-in en Swift

				
					for variable in secuencia {
    // Código a ejecutar
}

				
			

Entendamos la estructura anterior:

  • variable es una variable temporal que toma el valor de cada elemento en la secuencia durante cada iteración del bucle.
  • secuencia puede ser un rango de números, una colección (como un array o un diccionario) o un string.

 

A continuación veamos un par de ejemplos para entender como funciona en cada caso.

Iterando elementos en un Array

				
					let pokedex = ["Bulbasaur", "Charmander", "Squirtle", "Caterpie", "Weedle"]

for pokemon in pokedex {
		print(pokemon)
}
				
			
  1. La primera línea de código declara un array llamado pokedex que contiene los nombres de cinco Pokémon diferentes: Bulbasaur, Charmander, Squirtle, Caterpie y Weedle.
  2. La segunda línea de código utiliza la estructura for-in para recorrer los elementos del array pokedex. En cada iteración del ciclo, la variable pokemon toma el valor del siguiente elemento del array. Es decir, la primera vez que se ejecuta el ciclo, pokemon tendrá el valor «Bulbasaur»; la segunda vez, tendrá el valor «Charmander», y así sucesivamente hasta que se recorran todos los elementos del array.
  3. La tercera línea de código utiliza la función print para imprimir el valor de la variable pokemon en la consola. En cada iteración del ciclo, se imprimirá el nombre de un Pokémon diferente.
				
					Bulbasaur
Charmander
Squirtle
Caterpie
Weedle
				
			

Iterando elementos en un Diccionario

				
					let pokedexDictionary = [
    "Bulbasaur": ["type": "Grass/Poison", "evolution": ["Ivysaur", "Venusaur"]],
    "Charmander": ["type": "Fire", "evolution": ["Charmeleon", "Charizard"]],
    "Squirtle": ["type": "Water", "evolution": ["Wartortle", "Blastoise"]],
    "Pikachu": ["type": "Electric", "evolution": ["Raichu"]],
    "Eevee": ["type": "Normal", "evolution": ["Vaporeon", "Jolteon", "Flareon", "Espeon", "Umbreon", "Leafeon", "Glaceon", "Sylveon"]]
]

for (pokemonName, pokemonInfo) in pokedexDictionary {
    print("\(pokemonName):")
    print("\tTipo: \(pokemonInfo["type"]!)")
    print("\tEvolución: \(pokemonInfo["evolution"]!)")
}

				
			
  1. La primera línea de código define un diccionario llamado pokedexDictionary que contiene información sobre varios Pokémon. Cada Pokémon es una clave en el diccionario, y su valor es otro diccionario que contiene información adicional, como su tipo y su cadena de evolución.
  2. La segunda línea de código utiliza la estructura for-in para recorrer los elementos del diccionario. En cada iteración del ciclo, la variable pokemonName toma el valor de la clave actual del diccionario (es decir, el nombre del Pokémon), y la variable pokemonInfo toma el valor del diccionario asociado con esa clave (es decir, la información adicional del Pokémon).
  3. La tercera línea de código utiliza la función print para imprimir el nombre del Pokémon en la consola.
  4. La cuarta línea de código utiliza la función print nuevamente para imprimir información sobre el tipo del Pokémon en la consola, accediendo al diccionario pokemonInfo utilizando la clave type.
  5. La quinta línea de código utiliza la función print para imprimir información sobre la cadena de evolución del Pokémon en la consola, accediendo al diccionario pokemonInfo utilizando la clave evolution. Nótese que para acceder a los valores del diccionario, se utiliza la sintaxis de los corchetes [ ].
				
					Bulbasaur:
	Tipo: Grass/Poison
	Evolución: ["Ivysaur", "Venusaur"]
Charmander:
	Tipo: Fire
	Evolución: ["Charmeleon", "Charizard"]
Squirtle:
	Tipo: Water
	Evolución: ["Wartortle", "Blastoise"]
Pikachu:
	Tipo: Electric
	Evolución: ["Raichu"]
Eevee:
	Tipo: Normal
	Evolución: ["Vaporeon", "Jolteon", "Flareon", "Espeon", "Umbreon", "Leafeon", "Glaceon", "Sylveon"]
				
			

Iterando rangos

La estructura for-in también puede ser utilizada para recorrer un rango de valores.

Ejemplo:

				
					let pokedex = ["Bulbasaur", "Charmander", "Squirtle", "Caterpie", "Weedle",
"Pidgey", "Rattata", "Spearow", "Ekans", "Pikachu", "Sandshrew"]

for i in 0..<7 {
    print(pokedex[i])
}

				
			
  1. La primera línea de código declara un array llamado pokedex que contiene los nombres de varios Pokémon (11 Pokémon).
  2. La segunda línea de código utiliza la estructura for-in para recorrer un rango de valores que va desde 0 hasta 6. En cada iteración del ciclo, la variable i toma el valor del siguiente número en el rango. Es decir, la primera vez que se ejecuta el ciclo, i tendrá el valor 0; la segunda vez, tendrá el valor 1, y así sucesivamente hasta que se recorran los primeros 7 valores del rango (0,1,2,3,4,5,6).
  3. La tercera línea de código utiliza la función print para imprimir el valor del elemento del array pokedex que se encuentra en la posición i. Como i va desde 0 hasta 6, se imprimirán los primeros 7 elementos del array.
				
					Bulbasaur
Charmander
Squirtle
Caterpie
Weedle
Pidgey
Rattata

				
			

Iterando un String

				
					let pokemonTitle = "Pokemon"

for caracter in pokemonTitle {
    print("Caracter actual: \(caracter)")
}

				
			
  1. La primera línea de código define un string llamado pokemonTitle que contiene la palabra «Pokemon».
  2. La segunda línea de código utiliza la estructura for-in para recorrer los caracteres del string pokemonTitle. En cada iteración del ciclo, la variable caracter toma el valor del siguiente carácter en el string. Es decir, la primera vez que se ejecuta el ciclo, caracter tendrá el valor «P»; la segunda vez, tendrá el valor «o», y así sucesivamente hasta que se recorran todos los caracteres del string.
  3. La tercera línea de código utiliza la función print para imprimir el valor de la variable caracter en la consola, junto con un mensaje que indica que se trata del «caracter actual».
				
					Caracter actual: P
Caracter actual: o
Caracter actual: k
Caracter actual: e
Caracter actual: m
Caracter actual: o
Caracter actual: n

				
			

Conclusión

La estructura for-in es una herramienta esencial para cualquier desarrollador iOS que trabaje con arrays, diccionarios, strings y rangos. Permite recorrer y manipular elementos de una manera clara y eficiente.

¡Compártelo en tus redes!

Contenido 📂

Recursos { }