Comprendre les boucles en Go
Les boucles Go's for sont très polyvalentes, vous permettant de les utiliser pour de nombreux types différents de comportement de boucle.
La boucle for est une instruction de flux de contrôle utilisée pour exécuter à plusieurs reprises un bloc de code. Dans Go, la boucle for est la seule construction en boucle.
Vous pouvez utiliser la boucle for pour répéter des blocs de code et simuler une gamme complète de boucles provenant d'autres langages, y compris les boucles for...each, while et do...while.
Installer Aller au début
Assurez-vous que Go est installé pour suivre. La plupart de ces exemples nécessitent le package fmt et vous devez utiliser une structure globale comme celle-ci :
package main
import "fmt"
func main() {
// code goes here
}
Un composant pour Loop in Go à trois composants
C’est peut-être la boucle for la plus courante. Comme son nom l'indique, il nécessite trois composants : la valeur initiale, une condition et une instruction post. Voici la syntaxe :
for initialization; condition; post {
statement(s)
}
Dans cette boucle, après l'initialisation, la condition est évaluée. Si c'est vrai, les instructions du bloc de boucle for s'exécutent, suivies de l'instruction post. Le programme répète ce processus jusqu'à ce que la condition ne soit plus vraie. Ci-dessous un exemple.
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
Ici :
- l'initialisation définit i sur 1
- la condition est i <= 5
- la déclaration de publication est i++
Cette boucle for imprime la valeur actuelle de i si elle est inférieure ou égale à 5. L'instruction post ajoute 1 à i après chaque boucle et une fois i arrive à 5, la boucle se termine. Sans l'« instruction post », la boucle s'exécuterait un nombre infini de fois et pourrait potentiellement provoquer le crash du programme.
Une boucle For-Each en Go
Go n'a pas de boucle for-each, mais vous pouvez modifier une boucle for pour parcourir une collection d'éléments. Voici la syntaxe :
for index, value := range collection {
// body
}
La collection peut être un tableau, une tranche, une chaîne ou une carte, ou des valeurs reçues sur un canal. L'index est la position dans la collection. La valeur est l'élément à l'index.
Si vous ne vous souciez que de la valeur, omettez l'index comme ceci :
for _, value := range slice {}
Dans l'exemple ci-dessous, la boucle parcourt le tableau et imprime à la fois l'index et la valeur de chaque élément qu'il contient.
array := []string{"hello", "world"}
for i, j := range array {
fmt.Println(i, j)
}
Une boucle While en Go
Vous pouvez utiliser la boucle for pour obtenir la fonctionnalité de boucle while. Dans une boucle while, une instruction s'exécute tant qu'une condition reste vraie. Considérer ce qui suit:
i := 1
for i <= 5 {
i *= 2
}
fmt.Println(i)
Dans ce code, tant que i est inférieur ou égal à 5, il est multiplié par 2 à chaque exécution de la boucle.
Une boucle Do…While in Go
La boucle do...while est différente de la boucle while car le corps de la boucle s'exécutera au moins une fois. Il existe deux approches pour implémenter cela dans Go.
-
Assurez-vous que la condition de la première itération est définie sur true.
i := 10 for next := true; next; next = i <= 5 { fmt.Println(i) i++ } // Will print 10
Exécutez le corps de la boucle une fois avant de vérifier la condition.
i := 10 for { fmt.Println(i) i++ if i >= 5 { break; } } // Will print 10
Autres instructions de flux de contrôle
Les boucles de programmation sont importantes car elles simplifient les tâches répétitives et font gagner du temps. Au lieu d’écrire une ligne de code dix fois, vous pouvez simplement créer une boucle qui s’exécute dix fois. Les autres instructions de flux de contrôle sont if, if...else, if...else if...if et les instructions switch.