Menu
CoddyTech

Sortir de boucles imbriquées

Fait partie de la section Logique & Flux du Journey GO de Coddy. Leçon 2 sur 68.

Lorsque tu travailles avec des boucles imbriquées, une instruction break classique ne quitte que la boucle la plus interne. Cependant, Go fournit des étiquettes qui te permettent de sortir directement des boucles externes, ce qui te donne un contrôle précis sur les structures de boucles complexes.

Une étiquette est un identifiant suivi de deux-points que tu places avant une boucle. Tu peux ensuite utiliser break suivi du nom de l’étiquette pour sortir de cette boucle précise, même depuis des boucles imbriquées.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 1 {
            break outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
}

Dans cet exemple, lorsque la condition i == 1 && j == 1 est remplie, break outer quitte immédiatement les boucles interne et externe. C'est particulièrement utile lorsque tu parcours des structures de données 2D et que tu veux arrêter complètement la recherche dès que tu as trouvé ce que tu cherches.

challenge icon

Défi

Facile

Dans ce défi, tu vas t’entraîner à utiliser des instructions break étiquetées pour sortir de boucles imbriquées lors de la recherche dans une grille 2D. Tu dois trouver un nombre cible précis dans la grille et arrêter immédiatement la recherche dès que tu l’as trouvé.

Tu recevras deux entrées :

  • Une chaîne représentant les dimensions de la grille au format "rows,cols" (par exemple, "3,4")
  • Une chaîne représentant le nombre cible à rechercher (par exemple, "7")

La grille 2D de nombres suivante est mise à ta disposition :

grid := [][]int{
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12},
}

Ta tâche consiste à :

  1. Utiliser les valeurs déjà lues pour toi dans le code ci-dessus : rows et cols (la partie de la grille à parcourir), target et grid
  2. Utiliser des boucles imbriquées avec un break étiqueté pour parcourir la grille
  3. Lorsque tu trouves le nombre cible, afficher "Found [target] at position ([row], [col])" et sortir immédiatement des deux boucles à l’aide du break étiqueté
  4. Si tu termines la recherche sans trouver la cible, afficher "Target [target] not found"

La position doit être indiquée avec une indexation à partir de 0 (la première ligne est 0, la première colonne est 0).

Essayez vous-même

    // TODO: Écrivez votre code ci-dessous
    // Utilisez des boucles imbriquées avec un break étiqueté pour rechercher la cible
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Go en ligne