Menu
Coddy logo textTech

Continuer une boucle spécifique

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

Tout comme vous pouvez utiliser des étiquettes avec break pour quitter des boucles spécifiques, Go vous permet également d’utiliser des étiquettes avec l’instruction continue. Un continue étiqueté ignore l’itération actuelle de la boucle spécifiée et passe à son itération suivante.

Cela est particulièrement utile dans les boucles imbriquées lorsque vous souhaitez ignorer le reste de l’itération actuelle d’une boucle externe depuis une boucle interne, plutôt que de simplement poursuivre la boucle interne.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 0 {
            continue outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
    fmt.Println("End of outer loop iteration")
}

Dans cet exemple, lorsque i == 1 && j == 0, l’instruction continue outer ignore le reste de l’itération actuelle de la boucle externe, y compris la boucle interne et le message « End of outer loop iteration ». Le programme passe ensuite directement à l’itération suivante de la boucle externe, où i devient 2.

challenge icon

Défi

Facile

Dans ce défi, tu vas t’entraîner à utiliser des instructions continue étiquetées pour contrôler l’exécution de boucles imbriquées. Tu construis un système de traitement des données qui doit ignorer certaines itérations de la boucle externe en fonction de conditions trouvées dans les boucles internes.

Tu recevras deux entrées :

  • Une chaîne représentant le nombre de lignes à traiter (par exemple, "4")
  • Une chaîne représentant le numéro de la condition d’ignorance (par exemple, "3")

Le tableau de données 2D suivant t’est fourni :

data := [][]int{
    {1, 2, 3, 4, 5},
    {6, 7, 8, 9, 10},
    {11, 12, 13, 14, 15},
    {16, 17, 18, 19, 20},
    {21, 22, 23, 24, 25}
}

Ta tâche consiste à :

  1. Analyser le nombre de lignes à partir de la première entrée afin de déterminer combien de lignes traiter
  2. Analyser le numéro de la condition d’ignorance à partir de la deuxième entrée
  3. Utiliser des boucles imbriquées avec une instruction continue étiquetée pour traiter les données
  4. Pour chaque ligne, vérifier chaque valeur de colonne de cette ligne
  5. Si tu trouves le numéro de la condition d’ignorance dans une colonne d’une ligne, utiliser continue étiqueté pour ignorer le reste du traitement de cette ligne et passer à la ligne suivante
  6. Pour les lignes qui ne contiennent pas le numéro de la condition d’ignorance, afficher "Processing row [row_number]: [value1] [value2] [value3] [value4] [value5]"
  7. Pour les lignes qui contiennent le numéro de la condition d’ignorance, afficher "Skipping row [row_number] due to condition"

Les numéros de ligne doivent être indiqués en utilisant une indexation basée sur 0 (la première ligne est 0). Traite uniquement le nombre de lignes spécifié dans la première entrée et vérifie uniquement les 5 premières colonnes de chaque ligne.

Essayez vous-même

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // Lire l'entrée
    var rowsInput string
    var skipConditionInput string
    fmt.Scanln(&rowsInput)
    fmt.Scanln(&skipConditionInput)
    
    // Analyser les entrées
    numRows, _ := strconv.Atoi(rowsInput)
    skipCondition, _ := strconv.Atoi(skipConditionInput)
    
    // Tableau de données 2D fourni
    data := [][]int{
        {1, 2, 3, 4, 5},
        {6, 7, 8, 9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20},
        {21, 22, 23, 24, 25},
    }
    
    // TODO: Écrivez votre code ci-dessous
    // Utilisez des boucles imbriquées avec continue étiqueté pour traiter les données
    // Vérifiez chaque ligne pour le numéro de condition de saut
    // Affichez les messages appropriés selon que la condition est trouvée ou non
    
}
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