GoGoPrimer
< Retour au module

Structures de contrôle

if / else

La syntaxe de `if` ressemble à celle de C ou Java, à un détail près : les parenthèses autour de la condition sont interdites (pas juste optionnelles), et les accolades sont obligatoires même pour une seule instruction.

age := 20
 
if age >= 18 {
fmt.Println("Majeur")
} else if age >= 13 {
fmt.Println("Adolescent")
} else {
fmt.Println("Enfant")
}

Particularité utile : `if` accepte une instruction d'initialisation avant la condition, séparée par un point-virgule. La variable ainsi déclarée n'existe que dans la portée du `if`/`else`, ce qui évite de polluer le reste de la fonction.

if age := computeAge(birthDate); age >= 18 {
fmt.Println("Majeur")
}
// `age` n'existe plus ici, en dehors du bloc if

Ce motif `if valeur, err := faireQuelqueChose(); err != nil { ... }` revient constamment en Go, car c'est ainsi que le langage gère les erreurs (tu le retrouveras dans le module dédié à la gestion des erreurs).

À toi de jouer

Écris une fonction `describeTemperature(celsius float64) string` qui renvoie "gel" si <= 0, "frais" si <= 15, "agréable" si <= 25, sinon "chaud".

func describeTemperature(celsius float64) string {
// à compléter
}