Switch en français

Introduction au Switch en Go

Dans le langage Go, l'instruction switch permet d'exécuter de manière conditionnelle l'un des multiples blocs de code selon la valeur d'une expression. On peut considérer cela comme une extension de l'instruction if...else, avec une plus grande capacité à gérer des situations multiples.

Syntaxe de base du Switch

Il existe plusieurs syntaxes possibles pour l'instruction switch. La forme la plus courante est :

switch  {
case :
  
case :
  
.
.
.
case :
  
default:
  
}

Lorsque l' correspond à la valeur de l'une des instructions case, le bloc d' correspondant est exécuté. Si aucune valeur ne correspond, alors le bloc default optionnel est exécuté. Si le bloc default est omis et qu'aucune valeur n'est en correspondance, aucun bloc d'instructions ne s'exécute.

Particularités de Go

Contrairement à d'autres langages comme C++ ou Java, dans Go, les valeurs des instructions case ne sont pas uniquement limitées à des constantes. Vous pouvez également utiliser des variables ou des expressions complètes. De plus, Go n’a pas besoin d’une instruction ‘break’ car une fois qu’un bloc correspondant est atteint, l'exécution suit automatiquement le code après l'instruction switch.

Utilisation d'une expression simple

Il est également possible de ne pas spécifier d' après le switch, donnant ainsi un comportement similaire à des expressions dans une structure if...else :

switch {
case :
  
case :
  
.
.
.
case :
  
default:
  
}

Ici, la première expression qui évalue à vrai déclenchera son bloc d'. Le bloc default reste toujours optionnel.

Cas avec plusieurs valeurs

Dans chaque case, il est possible d’indiquer plusieurs valeurs ou expressions, séparées par des virgules :

switch  {
case , , ... :
  
default:
  
}

Les valeurs sont comparées de gauche à droite et de haut en bas. Le premier bloc case qui correspond à l'expression du switch sera exécuté.

Exemple pratique

Voici un exemple où une variable i est déclarée et utilisée dans une expression switch pour déterminer si le nombre est pair ou impair :

package main
import "fmt"

func main() {
    i := 7
    switch i % 2 {
    case 0:
        fmt.Printf("%d est pair.
", i)
    case 1:
        fmt.Printf("%d est impair.
", i)
    }
}
// Sortie : 7 est impair.