Sortir de boucles imbriquées
Utilisez des étiquettes pour sortir de plusieurs niveaux de boucles.
Sortir de boucles imbriquées est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Le problème des boucles imbriquées
Un simple break dans une boucle imbriquée ne quitte que la boucle interne, laissant la boucle externe continuer à s'exécuter.
for i in 1...3 {
for j in 1...3 {
if j == 2 { break }
print(i, j)
}
}break avec label résout le problème
Ajoutez un label à la boucle externe et utilisez break outer pour quitter les deux boucles à la fois.
outer: for i in 1...3 {
for j in 1...3 {
if i == 2 && j == 2 { break outer }
print(i, j)
}
}
print("escaped")Rechercher dans une grille 2D
Un break avec label est idéal pour arrêter une recherche en 2D dès que la cible est trouvée.
let grid = [[1, 2, 3], [4, 5, 6]]
var position = (-1, -1)
find: for r in 0..<grid.count {
for c in 0..<grid[r].count {
if grid[r][c] == 5 {
position = (r, c)
break find
}
}
}
print(position)Sans label : un indicateur
Une autre solution sans label consiste à utiliser un indicateur booléen, mais elle est plus verbeuse et plus sujette aux erreurs.
var stop = false
for i in 1...3 {
for j in 1...3 {
if i + j == 4 { stop = true; break }
print(i, j)
}
if stop { break }
}Les label sont plus clairs
Par rapport aux indicateurs, un break avec label exprime directement l'intention et évite les vérifications supplémentaires après la boucle interne.
outer: for i in 1...3 {
for j in 1...3 {
if i + j == 4 { break outer }
print(i, j)
}
}Imbrication sur trois niveaux
Le mécanisme de label s'étend à trois niveaux ou plus ; ciblez la boucle que vous devez quitter.
top: for a in 1...2 {
for b in 1...2 {
for c in 1...2 {
if c == 2 { break top }
print(a, b, c)
}
}
}continue avec label dans une imbrication
Utilisez continue label pour passer à l'itération suivante d'une boucle externe depuis un niveau d'imbrication profond.
rows: for r in 1...3 {
for c in 1...3 {
if c == 2 { continue rows }
print(r, c)
}
}Combiner les deux
Vous pouvez mélanger break et continue avec label dans une même structure imbriquée pour un contrôle précis.
scan: for i in 1...3 {
for j in 1...3 {
if j == 1 { continue }
if i == 3 { break scan }
print(i, j)
}
}Performances d'une sortie anticipée
Quitter la boucle dès que la réponse est trouvée évite des itérations inutiles sur de grands ensembles de données.
let data = Array(1...100)
var firstBig = -1
loop: for chunk in stride(from: 0, to: data.count, by: 10) {
for k in chunk..<min(chunk + 10, data.count) {
if data[k] > 25 {
firstBig = data[k]
break loop
}
}
}
print(firstBig)Renvoyer depuis une fonction
Dans une fonction, return est un autre moyen propre de quitter toutes les boucles à la fois.
func findPair(_ target: Int) -> (Int, Int)? {
for i in 1...5 {
for j in 1...5 {
if i * j == target { return (i, j) }
}
}
return nil
}
print(findPair(12) ?? (-1, -1))Choisir une approche
Préférez un break avec label pour quitter sur place des boucles imbriquées, ou return lorsque vous êtes dans une fonction et souhaitez en sortir entièrement.
outer: for x in 1...3 {
for y in 1...3 {
if x * y >= 4 { break outer }
print(x, y)
}
}Vérification rapide
Testez le contrôle des boucles imbriquées.
Récapitulatif
Un simple break ne quitte que la boucle la plus imbriquée. Attribuez un label à la boucle externe et utilisez break label pour sortir de tous les niveaux à la fois, ce qui est plus clair qu'un indicateur booléen. Dans une fonction, return permet également de tout quitter.
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { break outer }
print(i, j)
}
}Questions Fréquemment Posées
La leçon « Sortir de boucles imbriquées » est-elle gratuite ?
Oui — le texte complet de « Sortir de boucles imbriquées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Sortir de boucles imbriquées » ?
Utilisez des étiquettes pour sortir de plusieurs niveaux de boucles. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Sortir de boucles imbriquées » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de break et continue
- Instructions étiquetées
- Sortir de boucles imbriquées
- Contrôle des boucles dans le contexte de switch