L’instruction
if permet d’exécuter du code si une condition est vraie (if = si en anglais).
Par exemple :
Code : C# | decimal compteEnBanque = 300;
if (compteEnBanque >= 0)
Console.WriteLine("Votre compte est créditeur");
|
Ici, nous avons une variable contenant le solde de notre compte en banque. Si notre solde est supérieur ou égal à 0 alors nous affichons que le compte est créditeur.
Pour afficher que le compte est débiteur, on pourrait tester si la valeur de la variable est inférieure à 0 et afficher que le compte est débiteur :
Code : C# | decimal compteEnBanque = 300;
if (compteEnBanque >= 0)
Console.WriteLine("Votre compte est créditeur");
if (compteEnBanque < 0)
Console.WriteLine("Votre compte est débiteur");
|
Une autre solution est d’utiliser le mot clé
else, qui veut dire « sinon » en anglais.
« Si la valeur est vraie, alors on fait quelque chose, sinon, on fait autre chose », ce qui se traduit en C# par :
Code : C# | decimal compteEnBanque = 300;
if (compteEnBanque >= 0)
Console.WriteLine("Votre compte est créditeur");
else
Console.WriteLine("Votre compte est débiteur");
|
Il faut bien se rendre compte que l’instruction
if teste si une valeur est vraie (dans l’exemple précédent la comparaison compteEnBanque >= 0).
On a vu rapidement dans les chapitres précédents qu’il existait un type de variable qui permettait de stocker une valeur vraie ou fausse : le type
bool, autrement appelé
booléen (boolean en anglais).
Ainsi, il sera également possible de tester la valeur d’un booléen. L’exemple précédent peut aussi s’écrire :
Code : C# | decimal compteEnBanque = 300;
bool estCrediteur = (compteEnBanque >= 0);
if (estCrediteur)
Console.WriteLine("Votre compte est créditeur");
else
Console.WriteLine("Votre compte est débiteur");
|
À noter que les parenthèses autour de l’instruction de comparaison sont facultatives, je les ai écrites ici pour clairement identifier que la variable « estCrediteur » va contenir une valeur qui est le résultat de l’opération de comparaison « compte en banque est supérieur ou égal à 0 », en l’occurrence vrai.
Voici d’autres exemples pour vous permettre d’appréhender plus précisément le fonctionnement du type bool :
Code : C# | int age = 30;
bool estAgeDe30Ans = age == 30;
Console.WriteLine(estAgeDe30Ans); // affiche True
bool estSuperieurA10 = age > 10;
Console.WriteLine(estSuperieurA10); // affiche True
bool estDifferentDe30 = age != 30;
Console.WriteLine(estDifferentDe30); // affiche False
|
Un type bool peut prendre deux valeurs,
vrai ou
faux, qui s’écrivent avec les mots clés
true et
false.
Code : C# | bool estVrai = true;
if (estVrai)
Console.WriteLine("C'est vrai !");
else
Console.WriteLine("C'est faux !");
|
Il est également possible de combiner les tests grâce aux opérateurs de logique conditionnelle, par exemple && qui correspond à l’opérateur ET.
Dans l’exemple qui suit, nous affichons le message de bienvenue uniquement si le login est « Nicolas » ET que le mot de passe est « test ». Si l’un des deux ne correspond pas, nous irons dans l’instruction
else.
Code : C# | string login = "Nicolas";
string motDePasse = "test";
if (login == "Nicolas" && motDePasse == "test")
Console.WriteLine("Bienvenue Nicolas");
else
Console.WriteLine("Login incorrect");
|
Remarquons ici que nous avons utilisé le test d’égalité « == », à ne pas confondre avec l’opérateur d’affection « = ». C’est une erreur classique de débutant.
D’autres opérateurs de logiques existent, nous avons notamment l’opérateur || qui correspond au OU logique :
Code : C# | if (civilite == "Mme" || civilite == "Mlle")
Console.WriteLine("Vous êtes une femme");
else
Console.WriteLine("Vous êtes un homme");
|
L’exemple parle de lui-même ; si la civilité de la personne est Mme ou Mlle, alors nous avons à faire avec une femme.
A noter ici que si la première condition du
if est vraie alors la deuxième ne sera pas évaluée. C’est un détail ici, mais cela peut s’avérer important dans certaines situations dont une que nous verrons un peu plus loin.
Un autre opérateur très courant est la
négation que l’on utilise avec l’opérateur « ! ». Par exemple :
Code : C# | bool estVrai = true;
if (!estVrai)
Console.WriteLine("C'est faux !");
else
Console.WriteLine("C'est vrai !");
|
Ce test pourrait se lire ainsi : « Si la négation de la variable estVrai est vraie, alors on écrira c’est faux ».
La variable « estVrai » étant égale à
true, sa négation vaut
false.
Dans cet exemple, le programme nous affichera donc l’instruction correspondant au
else, à savoir « C’est vrai ! ».
Rappelez-vous, nous avons dit qu’une instruction se finissait en général par un point-virgule. Comment cela se fait-il alors qu’il n’y ait pas de point-virgule à la fin du
if ou du
else ?
Et si nous écrivions l’exemple précédent de cette façon ?
Code : C# | bool estVrai = true;
if (!estVrai) Console.WriteLine("C'est faux !");
else Console.WriteLine("C'est vrai !");
|
Ceci est tout à fait valable et permet de voir où s’arrête vraiment l’instruction grâce au point-virgule. Cependant, nous écrivons en général ces instructions de la première façon afin que celles-ci soient plus lisibles.
Vous aurez l’occasion de rencontrer dans les chapitres suivants d’autres instructions qui ne se terminent pas obligatoirement par un point-virgule.
Nous verrons dans le chapitre suivant comment exécuter plusieurs instructions après une instruction conditionnelle en les groupant dans des blocs de code, délimités par des accolades « { » et « } ».
Remarquons enfin qu'il est possible d’enchaîner les tests de manière à traiter plusieurs conditions en utilisant la combinaison
else-if. Cela donne :
Code : C# | if (civilite == "Mme")
Console.WriteLine("Vous êtes une femme");
else if (civilite == "Mlle")
Console.WriteLine("Vous êtes une femme non mariée");
else if (civilite == "M.")
Console.WriteLine("Vous êtes un homme");
else
Console.WriteLine("Je n'ai pas pu déterminer votre civilité");
|