Les conditions
Dans la section précédente, nous avons vu le principe des variables et des opérateurs arithmétiques. C'est un bon début, mais actuellement, nos programmes ne font rien de plus qu'une calculatrice... Pour créer de véritables mécanismes, nous avons besoin d'écrire des conditions, une structure fondamentale en programmation.
let number = 10
if (number > 6) {
Console.print("Le nombre est supérieur à 6")
} else {
Console.print("Le nombre est inférieur ou égal à 6")
}
Ici, number > 6
est une expression qui est évaluée par le programme pour valoir « vrai » ou « faux » (true
ou false
en anglais).
- Si l'expression est vraie, le programme exécute l'intérieur de la condition ;
- Si l'expression est fausse, le programme exécute la branche « sinon » (
else
). On peut aussi ne pas mettre de brancheelse
: dans ce cas-là, le programme passe simplement à la suite.
Astride
Le signe >
est un opérateur de comparaison. Il en existe bien sûr d'autres !
Opérateur | Signification |
---|---|
> |
Supérieur à |
>= |
Supérieur ou à égal à |
< |
Inférieur à |
<= |
Inférieur ou égal à |
== |
Égal à |
!= |
Différent de |
Remarquez l'opérateur double égal ==
. Il s'écrit ainsi pour une bonne raison :
number = 5
est une instruction qui assigne la valeur 5 à la variablenumber
.number == 5
est une expression qui demande « Est-ce quenumber
est égal à 5 ? » et qui renvoietrue
oufalse
. On peut placer cette expression dans une condition.
Prenons un exemple. Avec le double égal et le modulo, on peut savoir si un nombre est pair ou impair :
if (number % 2 == 0) {
Console.print("Ce nombre est pair")
} else {
Console.print("Ce nombre est impair")
}
Rémi
En effet, si on divise un nombre par 2 et qu'il reste 0, alors le nombre est pair !
Enfin, il existe des opérateurs logiques, qui permettent de connecter plusieurs expressions. Selon les langages, ils peuvent être écrits en toutes lettres ou avec des symboles :
Opérateur | Alphanumérique | Non-alphanumérique |
---|---|---|
x et y |
x and y |
x && y |
x ou y |
x or y |
x || y |
Inverse de x |
not x |
!x |
Vous pouvez combiner ces opérateurs logiques pour former des conditions complexes !
if (orangesCount == 5 || (applesCount > 5 && applesCount < 10)) {
Console.print("J'ai pile de quoi faire une tarte !")
}
Marvin
Est-ce que je vois flou ou il y a des parenthèses à l'intérieur de parenthèses ?
Astride
Cela permet de grouper plusieurs expressions ! Cette condition est vraie si on a 5 oranges, et sinon, elle peut aussi être vraie si on a entre 5 et 10 pommes.
Ce sont les opérateurs de comparaison et les opérateurs logiques qui vont permettre à notre code de réellement dépasser la calculatrice, en agissant en fonction des variables. Cela dit, pour le moment, c'est nous qui définissons les variables de départ et le programme fera toujours la même chose. Pour que les conditions aient un intérêt, l'utilisateur devrait pouvoir agir sur le programme en écrivant lui-même les nombres.
Console.print("Entrez un nombre.")
let number = Console.input() // permet à l'utilisateur d'écrire dans la console
if (number % 2 == 0) {
Console.print("Ce nombre est pair.")
} else {
Console.print("Ce nombre est impair.")
}
Rémi
Quand une instruction agit sur le monde extérieur, par exemple en affichant un texte à l'écran ou en demandant à l'utilisateur d'écrire quelque chose, on appelle cela un effet.
Désormais, l'utilisateur peut entrer un nombre et le programme va lui répondre en fonction. C'est un exemple tout simple, mais qui vous permet de commencer à imaginer les possibilités qui s'offrent à nous !