cybercursus

Les opérateurs et les conditions

11 min · Débutant · 3 octobre 2026

Sommaire
  1. Comparer des valeurs
  2. Les conditions, sans parenthèses
  3. L’instruction d’initialisation dans un if
  4. À toi de jouer

Comparer des valeurs

go
age := 20
aPermis := true

fmt.Println(age >= 18)             // true
fmt.Println(age >= 18 && aPermis)  // true : les deux doivent etre vraies
fmt.Println(age < 18 || aPermis)   // true : au moins une est vraie
fmt.Println(!aPermis)              // false : inverse la valeur

Les conditions, sans parenthèses

go
func categoriser(note int) string {
  if note >= 16 {
      return "Excellent"
  } else if note >= 10 {
      return "Admis"
  } else {
      return "Ajourne"
  }
}

fmt.Println(categoriser(18)) // "Excellent"
fmt.Println(categoriser(5))  // "Ajourne"

Info

Contrairement à Java ou JavaScript, Go n’exige pas de parenthèses autour de la condition d’un if. Les accolades {} restent en revanche toujours obligatoires, même pour un bloc d’une seule instruction.

L’instruction d’initialisation dans un if

go
ages := map[string]int{"Alice": 25, "Bob": 30}

if valeur, existe := ages["Alice"]; existe {
  fmt.Println("Age trouve :", valeur)
} else {
  fmt.Println("Cle absente")
}
// valeur et existe ne sont visibles qu'ici, pas en dehors du if/else

Cette syntaxe limite la portée de valeur et existe au bloc if/else, évitant de polluer le reste de la fonction avec des variables temporaires.

À toi de jouer

go
package main

import "fmt"

func estPositifEtPair(n int) bool {
  return n > 0 && n%2 == 0
}

func main() {
  fmt.Println(estPositifEtPair(-4))
}
Que produit ce code à l'exécution ?
Pourquoi `if (age >= 18) { ... }` (avec parenthèses autour de la condition) provoque-t-il une erreur de style ou de compilation en Go ?
Que permet de faire une instruction d'initialisation dans un if, comme `if valeur, ok := maMap["cle"]; ok { ... }` ?

Pour aller plus loin

Commentaires

Recherche