Go - Prise de décision

Introduction à la prise de décision en Go

Salut là, futur programmeur Go ! Aujourd'hui, nous plongeons dans un des aspects les plus cruciaux de la programmation : la prise de décision. Juste comme dans la vie réelle, nos programmes doivent faire des choix basés sur certaines conditions. En Go, nous avons plusieurs outils à notre disposition pour mettre en œuvre ces décisions. Commençons cette aventure passionnante ensemble !

Go - Decision Making

Instruction if : Le Bloc de Base

Syntaxe et Structure

L'instruction if est la base de la prise de décision en Go. Elle nous permet d'exécuter un bloc de code uniquement si une certaine condition est vraie. Voici la structure de base :

if condition {
// code à exécuter si la condition est vraie
}

Voyons un exemple simple :

package main

import "fmt"

func main() {
age := 18

if age >= 18 {
fmt.Println("Vous êtes éligible pour voter !")
}
}

Dans cet exemple, nous vérifions si l'age est de 18 ans ou plus. Si c'est le cas, nous affichons un message. Exécutez ce code, et vous verrez le message car 18 est bien supérieur ou égal à 18 !

Ajout d'une Clause else

Que se passe-t-il si nous voulons faire quelque chose lorsque la condition est fausse ? C'est là que rentre en jeu la clause else :

package main

import "fmt"

func main() {
age := 16

if age >= 18 {
fmt.Println("Vous êtes éligible pour voter !")
} else {
fmt.Println("Désolé, vous êtes trop jeune pour voter.")
}
}

Maintenant, puisque age est de 16 ans, ce qui est inférieur à 18, le programme affichera le message dans le bloc else.

Chaîne if-else if-else

Parfois, nous devons vérifier plusieurs conditions. Nous pouvons chaîner des instructions if-else comme ceci :

package main

import "fmt"

func main() {
score := 75

if score >= 90 {
fmt.Println("Note A")
} else if score >= 80 {
fmt.Println("Note B")
} else if score >= 70 {
fmt.Println("Note C")
} else {
fmt.Println("Besoin d'amélioration")
}
}

Ce programme vérifie le score et affiche la note correspondante. Avec un score de 75, il affichera "Note C".

Instruction switch : Le Décideur Multi-Chemin

Lorsque vous avez plusieurs conditions à vérifier, surtout si elles vérifient toutes la même variable, l'instruction switch peut rendre votre code plus propre et plus efficace.

Syntaxe de Base du switch

package main

import "fmt"

func main() {
day := "Monday"

switch day {
case "Monday":
fmt.Println("C'est le début de la semaine de travail !")
case "Friday":
fmt.Println("TGIF !")
default:
fmt.Println("C'est un jour régulier.")
}
}

Dans cet exemple, nous vérifions la valeur de day et exécutons le cas correspondant. Le cas default est exécuté si aucun des autres cas ne correspond.

switch avec Multiples Cas

Vous pouvez également regrouper plusieurs cas ensemble :

package main

import "fmt"

func main() {
day := "Saturday"

switch day {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("C'est un jour ouvré.")
case "Saturday", "Sunday":
fmt.Println("C'est le week-end !")
default:
fmt.Println("Jour invalide.")
}
}

Ce code affichera "C'est le week-end !" car samedi est l'un des jours du week-end.

switch sans Expression

Go permet d'utiliser switch sans expression, ce qui peut être utilisé comme alternative à des chaînes longues if-else :

package main

import "fmt"

func main() {
score := 85

switch {
case score >= 90:
fmt.Println("Note A")
case score >= 80:
fmt.Println("Note B")
case score >= 70:
fmt.Println("Note C")
default:
fmt.Println("Besoin d'amélioration")
}
}

Cela affichera "Note B" car 85 est supérieur ou égal à 80.

Opérateurs Conditionnels

Pour rendre nos conditions plus puissantes, nous utilisons des opérateurs conditionnels. Voici un tableau des plus courants :

Opérateur Description Exemple
== Égal à a == b
!= Différent de a != b
< Inférieur à a < b
> Supérieur à a > b
<= Inférieur ou égal à a <= b
>= Supérieur ou égal à a >= b
&& ET logique a && b
|| OU logique a || b
! NON logique !a

Voyons-les en action :

package main

import "fmt"

func main() {
age := 25
hasLicense := true

if age >= 18 && hasLicense {
fmt.Println("Vous pouvez conduire une voiture !")
} else if age >= 18 && !hasLicense {
fmt.Println("Vous êtes assez âgé, mais vous avez besoin d'un permis.")
} else {
fmt.Println("Vous êtes trop jeune pour conduire.")
}
}

Ce programme vérifie à la fois l'age et si la personne hasLicense pour déterminer si elle peut conduire.

Conclusion

La prise de décision est un concept fondamental en programmation, et Go nous fournit des outils puissants pour le mettre en œuvre. Souvenez-vous, la pratique rend parfait ! Essayez de créer vos propres programmes en utilisant if, switch, et différents opérateurs conditionnels.

While you continue your journey in Go, you'll find yourself using these constructs frequently. They're the building blocks of logic in your programs, helping your code make smart decisions based on different conditions.

Keep coding, keep learning, and most importantly, have fun with Go !

Credits: Image by storyset