English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La boucle for dans le langage Go est une instruction de contrôle de répétition qui nous permet d'écrire des boucles exécutant un nombre spécifique d'opérations. Dans le langage Go, cette boucle for peut être utilisée de différentes manières, y compris :
1. Boucle for simpleNous utilisons des expressions similaires dans d'autres langages de programmation (par exemple C, C ++,Java, C#, etc.).
Syntaxe :
for initialization; condition; post{ // Instructions.... }
Ici,
DansInitialisation(initialization)La statement initiale est optionnelle et est utilisée pour exécuter des instructions avant le début de la boucle. L'instruction initiale est toujours située dans une simple instruction, par exemple une déclaration de variable, une instruction d'incrémentation ou d'affectation ou un appel de fonction.
La statement condition (condition) contient une expression booléenne qui est calculée à chaque début d'itération de la boucle. Si la valeur de la statement condition est true, la boucle est exécutée.
La statement post est exécutée après le corps de la boucle for. Après la statement post, la condition est recalculée pour déterminer si elle est false, puis la boucle se termine.
//Utilisation de la boucle for package main import "fmt" //Fonction principale func main() { // Boucle for //Cette boucle commence à s'exécuter lorsque i = 0, jusqu'à ce que i<4La condition est vraie //La statement post est i++ for i := 0; i < 4; i++{ fmt.Printf("w3codebox\n") } }
Sortie :
w3codebox w3codebox w3codebox w3codebox
2. Utilisation de la boucle for comme boucle infinie :En supprimant les trois expressions de la boucle for, la boucle for peut également être utilisée comme boucle infinie. Si l'utilisateur n'a pas écrit d'instruction de condition dans la boucle for, cela signifie que l'instruction de condition est true et que la boucle entre dans une boucle infinie.
Syntaxe :
for{ // Instructions... }
// Utilisation de la boucle infinie package main import "fmt" func main() { // Boucle infinie for { fmt.Printf("w3codebox\n") } }
Sortie :
w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox ...........
3. Utilisation de la boucle for comme boucle while : La boucle for peut également être utilisée comme boucle while. Exécutez cette boucle jusqu'à ce que la condition donnée soit vraie. Lorsque la valeur de la condition donnée est false, la boucle se termine.
Syntaxe :
for condition { //instruction.. }
//La boucle for est identique à la boucle while package main import "fmt" func main() { //Boucle while //La boucle for s'exécute jusqu'à //i <3La condition est vraie i:= 0 for i < 3 { i += 2 } fmt.Println(i) }
Sortie :
4
4. Portée simple dans la boucle for :Vous pouvez égalementDans la boucle for,Utilisation de la portée.
Syntaxe :
for i, j := range rvariable { // instruction.. }
Ici,
Les variables i et j sont les variables d'affectation des valeurs d'itération. Elles sont également appelées variables d'itération.
La deuxième variable, c'est-à-dire j, est optionnelle.
L'expression de portée est évaluée une fois avant le début de la boucle.
package main import "fmt" func main() { //Ici, rvariable est un tableau. rvariable:= []string{"GFG", "Geeks", "w}3codebox"} //i et j stockent les valeurs de rvariable //i stocke l'indice de la somme individuelle de la chaîne //j stocke la chaîne individuelle donnée de l'array for i, j:= range rvariable { fmt.Println(i, j) } }
Sortie :
0 GFG 1 Geeks 2 w3codebox
5. Utilisation de la boucle for pour les chaînes : La boucle for peut parcourir les points de code Unicode des chaînes.
Syntaxe :
for index, chr:= range str{ // instruction.. }
ici, l'index est le stockage UTF-8Variable pour le premier octet du code point encodé, tandis quechr estVariable pour stocker les caractères de la chaîne donnée, tandis questrest une chaîne.
package main import "fmt" func main() { // Les chaînes de caractères en tant que plage de boucle for : for i, j := range "XabCd" { fmt.Printf("%U l'indice de la clé est %d\n", j, i) } }
Sortie :
U+0058 l'indice de la clé est 0 U+0061 l'indice de la clé est 1 U+0062 l'indice de la clé est 2 U+0043 l'indice de la clé est 3 U+0064 l'indice de la clé est 4
6. Utilisation de la boucle for pour les maps : La boucle for peut parcourirmaples paires de clé et de valeur.
Syntaxe :
for key, value := range map { // instruction.. }
package main import "fmt" func main() { 22 33: "GFG", 44: "w3codebox", } for key, value := range mmap { fmt.Println(key, value) } }
Sortie :
22 Geeks 33 GFG 44 w3codebox
7. Pour le canal : La boucle for peut parcourir les valeurs envoyées dans le canal jusqu'à ce qu'il soit fermé.
Syntaxe :
for item := range Chnl { // instruction.. }
package main import "fmt" func main() { // Utilisation du channel chnl := make(chan int) go func() { chnl <- 100 chnl <- 1000 chnl <- 10000 chnl <- 100000 close(chnl) }() for i := range chnl { fmt.Println(i) } }
Sortie :
100 1000 10000 100000
Matière à savoir :
Ne pas utiliser de parenthèses dans les trois expressions de la boucle for.
Les accolades sont nécessaires dans la boucle for.
Le parenthèse ouvrante doit être sur la même ligne que la commande post.
Si un tableau, une chaîne, un segment ou un ensemble map est vide, la boucle for ne lève pas d'erreur et continue son processus. Autrement dit, si un tableau, une chaîne, un segment ou un ensemble map est nil, le nombre d'itérations de la boucle for est zéro.