Passer au contenu principal
eLearner.app
Module 2 · Leçon 2 sur 57/50 dans le cours~10 min
Leçons du module (2/5)

for : l'unique boucle

Go a une construction à boucle unique : for. Non while, non do-while, pas de foreach (qui arrive dans la prochaine leçon avec range). Un seul mot clé couvre tous les cas grâce à trois formulaires.

Les trois formes de for

Formulaire classique à trois clauses

Identique à C/Java :

Go
for i := 0; i < 5; i++ {
    fmt.Println(i)
}

i a une portée limitée au for. Les trois clauses sont facultatives (vous pouvez omettez-en un) mais le ; reste si vous en omettez un intermédiaire.

Forme "while" : condition uniquement

En Go, while est simplement un for avec une seule expression bool :

Go
i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

Forme infinie

Sans clauses, la boucle ne se termine jamais (sauf break/return) :

Go
for {
    if exitCondition() {
        break
    }
    doWork()
}

C'est le modèle pour les boucles de gestion des événements, les serveurs et les politiques de nouvelle tentative.

break, continue et étiquettes

break quitte la boucle la plus interne, continue passe à l'itération suivante :

Go
for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue       // salta i pari
    }
    if i > 7 {
        break          // ferma il ciclo
    }
    fmt.Println(i)     // 1 3 5 7
}

Pour quitter les boucles imbriquées, il existe des labels (rares mais utiles) :

Go
Esterno:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i*j == 4 {
            break Esterno   // esce da entrambi
        }
    }
}

Pas d'opérateur , comme en C

En Go, vous ne pouvez pas écrire for i, j := 0, 10; i < j; i, j = i+1, j-1 : l'expression de publication n'accepte pas plusieurs affectations. Utilisez Go syntaxe d'affectation multiple :

Go
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
    fmt.Println(i, j)
}

À la place, cela fonctionne car i, j = i+1, j-1 est un seul mission multiple.

Essayez-le

Exercice#go.m2.l2.e1
Tentatives : 0Chargement…

Imprimez les nombres de 0 à 4 inclus avec un classique à trois clauses pour.

Chargement de l'éditeur…
Afficher l'indice

`for init; cond; post { ... }` — ici, init est `i := 0`.

Solution disponible après 3 tentatives

Exercice#go.m2.l2.e2
Tentatives : 0Chargement…

Additionnez au total tous les nombres de 1 à 10 inclus en utilisant la forme « tandis que » pour.

Chargement de l'éditeur…
Afficher l'indice

Forme 'pendant' : `for <condition> { ... }`.

Solution disponible après 3 tentatives

Quiz#go.m2.l2.e3
Prêt

Quelle forme représente une boucle infinie dans Go ?

Go
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }
Options de réponse

Récapitulatif

  • Un seul mot-clé for à trois formes : classique, while, infini.
  • break / continue avec éventuellement une étiquette pour boucles imbriquées.
  • Etiqueter Name: avant le for, à utiliser avec parcimonie.
  • Pas de , en tant qu'opérateur : utilisez l'affectation multiple i, j = ..., ....