Boucle For in
Boucle For in
Avec la boucle for-in, on s’attaque à une notion essentielle de la programmation : les boucles. C’est un outil très utile puisqu’il va nous permettre de répéter automatiquement des opérations, sans avoir à les écrire manuellement plusieurs fois. Ça nous aide à gagner du temps et à rendre notre code plus clair et efficace.
Prenons un exemple simple, je veux afficher dans ma console 8 fois le message print("Pixel Swift, c’est trop bien !"). Avec les outils que tu connais actuellement, tu pourrais copier-coller le print 8 fois comme ceci :
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
print("Pixel Swift, c’est trop bien !")
Ça fonctionne, mais ce n’est pas optimal. Si je dois maintenant afficher ce message 300 fois, je devrais copier-coller la ligne 300 fois… et ça devient très fastidieux 🤯
Heureusement, Swift nous offre les boucles pour simplifier ce genre de tâche. Voici comment on peut écrire ça avec une boucle for-in
for index in 1...8 {
print("Pixel Swift, c’est trop bien !")
}
Pour comprendre ce code, il faut s’intéresser à la ligne for index in 1...8. Ici, on donne à la boucle une plage de nombres allant de 1 à 8. La boucle va donc répéter l’instruction située à l’intérieur des accolades pour chaque valeur de cette plage. La variable index va prendre successivement les valeurs 1, 2, 3, …, jusqu’à 8. Ensuite, on trouve notre instruction print("Pixel Swift, c’est trop bien !"), qui est exécutée à chaque tour de la boucle, soit 8 fois.
L’avantage principal de cette approche est sa simplicité et sa flexibilité. Par exemple, si tu veux afficher ton message 300 fois au lieu de 8, il te suffit de changer la plage de 1…8 en 1…300.
Il n’y a plus besoin de copier-coller 300 fois la même ligne, tout est automatisé. Un autre point positif est la facilité pour modifier ton code. Si tu veux changer le texte dans ton print, il te suffit de le faire une seule fois, contrairement à l’exemple initial où tu aurais eu 8 modifications à réaliser.
Syntaxe
for index in collection {
}
indexUne variable temporaire utilisable exclusivement dans la boucle, elle représente chaque élément dans la séquence.collectionUne séquence (comme un tableau, un dictionnaire, un set, une chaîne, une intervalle, etc..).
Tableau
let students = ["Claudia", "Romain", "Kamel", "Maxime"]
for student in students {
print(student)
}
/* Lecture dans la console ->
Claudia
Romain
Kamel
Maxime
*/
La boucle for-in est particulièrement utile pour parcourir les index d’un tableau.
Comme on l’a vu, un array est constitué d’index allant de 0 à une possible infinité d’index.
Pour parcourir et lire chaque donnée d’un tableau, on peut donc utiliser la boucle for-in comme dans l’exemple.
On va donner en paramètre le nom du tableau, ici
students, et utiliser l’index pour afficher chaque valeur.
Par convention, on va renommer l’index avec le nom du tableau mais au singulier
(effectivement il représente un index unique).
Dictionnaire
let ages = ["Omar": 25, "Tristan": 30, "Boris": 35]
for (name, age) in ages {
print("\(name) a \(age) ans")
}
/* Lecture dans la console ->
Omar a 25 ans
Tristan a 30 ans
Boris a 35 ans
*/
Pour le cas d’un dictionnaire, tu peux créer deux index, un qui représente la clé et l’autre la valeur.
Intervalle de valeur
for number in 1...5 {
print(number)
}
/* Lecture dans la console ->
1
2
3
4
5
*/
La boucle for-in est également utile pour boucler sur une intervalle de valeurs, pour ça tu peux utiliser un range comme dans l’exemple 0…5 et utiliser l’index pour afficher chaque iteration. On le verra plus tard dans certain cas de figure, c’est très utile pour répéter certaine opération.
Set (ensemble)
let uniqueNumbers: Set = [1, 2, 3, 4, 5]
for number in uniqueNumbers {
print(number)
}
Pour parcourir un Set, c’est exactement comme pour les tableaux, à ceci près que l’ordre sera aléatoire. Pour rappel, les Set ne fonctionnent pas avec un système d’index.
Passer directement à l’itération suivante
for number in 1...5 {
if number == 3 {
continue
}
print(number)
}
/* Lecture dans la console ->
1
2
4
5
*/
On peut empêcher d’afficher certaines itérations avec l’instruction continue. Quand la boucle rencontre cette instruction, elle arrête l’exécution en cours et passe directement à l’itération suivante.
Sortir de la boucle
for number in 1...5 {
if number == 3 {
break
}
print(number)
}
/* Lecture dans la console ->
1
2
*/
Boucles imbriquées
let videoGames = [
["FPS" : ["Call of Duty", "Counter Strike", "Valorant"]],
["MMORPG" : ["Final Fantasy 14", "World of Warcraft", "Rift"]]
]
for genre in videoGames {
for (category, games) in genre {
print("🎮 Catégorie : \(category)")
for game in games {
print(" - \(game)")
}
}
}
/* Lecture dans la console ->
🎮 Catégorie : FPS
- Call of Duty
- Counter Strike
- Valorant
🎮 Catégorie : MMORPG
- Final Fantasy 14
- World of Warcraft
- Rift
*/
Les boucles for-in peuvent être imbriquées les unes dans les autres, ce qui signifie qu’une boucle for-in peut contenir une autre boucle for-in en son sein. Ca permet de parcourir des structures plus complexes, comme des tableaux multidimensionnels.
Exercices Pratiques
Exo boucle for
Télécharger le playground
Accède aux consignes directement en téléchargeant le playground.
⚠️ Les consignes que tu trouveras dans le playground ne sont pas verrouillées. Fais attention à ne pas les effacer par inadvertance !
Objectif
La boucle for-in est un outil essentiel pour la suite de ton apprentissage. Comme pour les autres concepts, prends le temps de pratiquer afin de bien l’assimiler. Tu verras, c’est simple à utiliser et très efficace.
Note
Attention ! Ici, on a appris une nouvelle convention, et tu sais que j’insiste régulièrement là-dessus depuis le début. Si tu parcours un tableau (qui est écrit au pluriel), la variable utilisée dans la boucle prendra le même nom mais au singulier.
Exercices Pratiques
Exo boucle for
Télécharger le playground
Accède aux consignes directement en téléchargeant le playground.
⚠️ Les consignes que tu trouveras dans le playground ne sont pas verrouillées. Fais attention à ne pas les effacer par inadvertance !
Objectif
La boucle for-in est un outil essentiel pour la suite de ton apprentissage. Comme pour les autres concepts, prends le temps de pratiquer afin de bien l’assimiler. Tu verras, c’est simple à utiliser et très efficace.
Note
Attention ! Ici, on a appris une nouvelle convention, et tu sais que j’insiste régulièrement là-dessus depuis le début. Si tu parcours un tableau (qui est écrit au pluriel), la variable utilisée dans la boucle prendra le même nom mais au singulier.