Go - Les boucles : Maîtriser la répétition dans la programmation

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans l'un des concepts les plus fondamentaux de la programmation : les boucles. En tant que votre professeur de science informatique de quartier, je suis excité de vous guider à travers le fascinant monde des boucles Go. Faites-moi confiance, à la fin de ce tutoriel, vous serez des pros de la boucle !

Go - Loops

Qu'est-ce que les boucles ?

Avant de rentrer dans les détails, comprendre ce que sont les boucles. Imaginez que vous êtes chargé d'écrire "J'aime la programmation" 100 fois. fastidieux, n'est-ce pas ? C'est là que les boucles deviennent utiles ! Elles nous permettent de répéter un ensemble d'instructions plusieurs fois sans avoir à écrire le même code encore et encore.

Types de boucles en Go

Go propose trois types principaux de boucles :

  1. Boucle for
  2. Boucle while (implémentée à l'aide de for)
  3. Boucle basée sur range

Explorons chacun de ces types en détail.

1. La boucle for classique

La boucle for est le type de boucle le plus commun en Go. C'est comme le couteau suisse des boucles - polyvalent et puissant.

package main

import "fmt"

func main() {
for i := 0; i < 5; i++ {
fmt.Println("Itération :", i)
}
}

Dans cet exemple :

  • i := 0 initialise la variable de boucle
  • i < 5 est la condition vérifiée avant chaque itération
  • i++ est exécuté après chaque itération

Sortie :

Itération : 0
Itération : 1
Itération : 2
Itération : 3
Itération : 4

2. La boucle while (style Go)

Go n'a pas de mot-clé while, mais nous pouvons utiliser la boucle for pour obtenir le même résultat. C'est comme porte un t-shirt smoking - formellement une boucle for, mais fonctionnellement une boucle while !

package main

import "fmt"

func main() {
count := 0
for count < 3 {
fmt.Println("Le compteur est :", count)
count++
}
}

Ici, la boucle continue tant que count < 3 est vrai.

Sortie :

Le compteur est : 0
Le compteur est : 1
Le compteur est : 2

3. La boucle basée sur range

C'est mon préféré - c'est comme avoir un GPS pour vos structures de données. C'est parfait pour itérer sur des tableaux, des tranches, des maps, et plus encore.

package main

import "fmt"

func main() {
fruits := []string{"pomme", "banane", "cerise"}
for index, fruit := range fruits {
fmt.Printf("Le fruit à l'index %d est %s\n", index, fruit)
}
}

Cette boucle itère automatiquement sur la tranche fruits, nous donnant à la fois l'index et la valeur à chaque itération.

Sortie :

Le fruit à l'index 0 est pomme
Le fruit à l'index 1 est banane
Le fruit à l'index 2 est cerise

Instructions de contrôle des boucles

Maintenant que nous avons les bases, ajoutons un peu d'épice à nos boucles avec des instructions de contrôle. Ce sont comme les DJs du monde de la programmation - ils contrôlent le flux de notre fête boucle !

Instruction break

L'instruction break est comme appuyer sur le bouton d'arrêt d'urgence. Elle termine immédiatement la boucle.

package main

import "fmt"

func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("On atteint 5 ! Il est temps de s'arrêter !")
break
}
fmt.Println("Nombre actuel :", i)
}
}

Cette boucle s'arrêtera dès que i atteint 5.

Sortie :

Nombre actuel : 0
Nombre actuel : 1
Nombre actuel : 2
Nombre actuel : 3
Nombre actuel : 4
On atteint 5 ! Il est temps de s'arrêter !

Instruction continue

L'instruction continue est comme sauter une chanson que vous n'aimez pas. Elle passe à l'itération suivante de la boucle.

package main

import "fmt"

func main() {
for i := 0; i < 5; i++ {
if i == 2 {
fmt.Println("On saute 2 !")
continue
}
fmt.Println("Nombre actuel :", i)
}
}

Cette boucle ignorera l'affichage lorsque i est 2.

Sortie :

Nombre actuel : 0
Nombre actuel : 1
On saute 2 !
Nombre actuel : 3
Nombre actuel : 4

La boucle infinie

Pour terminer, parlons de la boucle infinie, fameuse. C'est comme cette une chanson qui ne s'arrête jamais - elle continue et continue sauf si vous lui dites d'arrêter.

package main

import (
"fmt"
"time"
)

func main() {
count := 0
for {
fmt.Println("Ceci est l'itération :", count)
count++
time.Sleep(time.Second)
if count == 5 {
fmt.Println("Bon, c'est assez !")
break
}
}
}

Cette boucle continuera pour toujours, sauf si nous en sortons. Dans ce cas, nous sortons après 5 itérations.

Sortie :

Ceci est l'itération : 0
Ceci est l'itération : 1
Ceci est l'itération : 2
Ceci est l'itération : 3
Ceci est l'itération : 4
Bon, c'est assez !

Table des méthodes de boucle

Voici un tableau pratique résumant les méthodes de boucle que nous avons couvertes :

Méthode Description Exemple
Boucle For Boucle standard avec initialisation, condition et post-instruction for i := 0; i < 5; i++ { ... }
Boucle While-style For Boucle qui s'exécute tant qu'une condition est vraie for count < 3 { ... }
Boucle basée sur Range Boucle pour itérer sur des tableaux, des tranches, des maps, etc. for index, value := range collection { ... }
Boucle infinie Boucle qui s'exécute indéfiniment sauf si interrompue for { ... }

Et voilà, les amis ! Vous avez fait vos premiers pas dans le monde loopy de la programmation Go. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces concepts. Bon codage, et puissent vos boucles toujours s'arrêter lorsque vous le souhaitez !

Credits: Image by storyset