English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base en Golang

Instructions de contrôle en Golang

Fonction & Méthode en Golang

Structure en Golang

Coupe & Tableau en Golang

Chaîne (String) en Golang

Pointeur en Golang

Interface en Golang

Concurrence en Golang

Exception (Error) de Golang

Autres éléments de Golang

Instructions de boucle (boucle for) dans le langage Go

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.