1. L'opérateur if else
Les programmes ne serviraient pas à grand-chose s'ils faisaient toujours la même chose, peu importe ce qui se passe autour. Un programme doit pouvoir s'adapter à différentes situations et faire certaines actions dans certains cas, d'autres dans d'autres cas.
En C#, ça se fait avec l'opérateur conditionnel — un mot-clé spécial qui te permet d'exécuter différents blocs de commandes selon si la condition est vraie ou pas.
L'opérateur conditionnel a trois parties : condition, commande 1 et commande 2. Si condition est vraie, commande 1 s'exécute, sinon c'est commande 2. Les commandes ne s'exécutent jamais en même temps. La forme générale de cet opérateur ressemble à ça :
if (condition)
commande1;
else
commande2;
if-else
if veut dire "si", et else c'est "sinon". En langage humain, ça donne :
Si condition est vraie, alors
exécuter commande1;
sinon
exécuter commande2;
if-else en langage humain
Exemples :
//À l'écran s'affichera : Tu es encore un enfant
int age = 17;
if (age < 18)
Console.WriteLine("Tu es encore un enfant");
else
Console.WriteLine("Tu es déjà adulte");
//À l'écran s'affichera : Il fait doux
int temperature = 5;
if (temperature < 0)
Console.WriteLine("Il gèle dehors");
else
Console.WriteLine("Il fait doux");
//À l'écran s'affichera : Tu peux passer le permis
int age = 18;
if (age == 18)
Console.WriteLine("Tu peux passer le permis");
else
Console.WriteLine("Tu peux économiser pour une voiture");
2. Bloc de commandes
Si tu veux que ton programme exécute plusieurs commandes quand la condition est (ou n'est pas) remplie, tu peux les regrouper dans un bloc de commandes.
Pour faire un bloc, il faut "enrouler" les commandes dans des accolades. Voilà à quoi ça ressemble en général :
{
commande1;
commande2;
commande3;
}
Il peut y avoir autant de commandes que tu veux dans un bloc. Même zéro.
Exemples de combinaison de l'opérateur if-else et d'un bloc de commandes :
//À l'écran s'affichera : Tu es encore un enfant. Ne discute pas avec les adultes
int age = 17;
if (age < 18)
{
Console.WriteLine("Tu es encore un enfant");
Console.WriteLine("Ne discute pas avec les adultes");
}
else
{
Console.WriteLine("Tu es déjà adulte");
Console.WriteLine("Ah, cette jeunesse !");
}
//À l'écran s'affichera : Il fait doux
int temperature = 5;
if (temperature < 0)
{
Console.WriteLine("Il gèle dehors");
Console.WriteLine("Mets un bonnet");
}
else
Console.WriteLine("Il fait doux");
//Un bloc vide sera exécuté. Rien ne s'affichera à l'écran.
int age = 21;
if (age == 18)
Console.WriteLine("Présente-toi à la caserne");
else
{
}
3. Syntaxe raccourcie de l'opérateur if
Si le bloc else n'a pas de code, tu peux le zapper. L'opérateur if devient alors :
if (condition)
commande1;
if
Exemple :
int age = 19;
if (age >= 18)
{
Console.WriteLine("Tu es majeur !");
}
Comment ça marche ?
Si la condition est vraie, le bloc de code s'exécute. Si c'est faux, il ne se passe rien — le programme continue.
Le bloc else existe dans le programme, mais il est vide (rien entre les accolades). Tu peux juste l'enlever : ça ne changera rien au programme.
4. Combiner les conditions : else if
Parfois, tu dois vérifier plus que "oui/non", genre choisir entre plusieurs options. C'est là que else if arrive :
if (condition1)
{
// S'exécute si condition1 est vraie
}
else if (condition2)
{
// S'exécute si condition2 est vraie et condition1 est fausse
}
else
{
// S'exécute si aucune des conditions ci-dessus ne marche
}
Exemple :
int hour = 13;
if (hour < 12)
{
Console.WriteLine("Bonjour !");
}
else if (hour < 18)
{
Console.WriteLine("Bon après-midi !");
}
else
{
Console.WriteLine("Bonsoir !");
}
Qu'est-ce qui se passe ici ?
- Si l'heure est avant 12 — c'est le matin.
- Si c'est entre 12 et 18 — c'est l'après-midi.
- Si c'est plus — c'est le soir.
- Le programme choisit UNE SEULE option ! Dès qu'une condition passe — les autres ne sont même pas testées.
5. Illustration schématique : diagramme de branchement
Voilà à quoi ça ressemble en schéma :
Et si tu as plusieurs conditions :
Ça fait vraiment penser aux embranchements dans les jeux de rôle sur table : tu vas à gauche — un truc, à droite — un autre, tout droit — encore autre chose !
6. Quelles conditions tu peux tester ?
Dans les parenthèses après if il faut une expression LOGIQUE — qui donne true ou false.
Les principaux opérateurs de comparaison :
| Opérateur | Signification | Exemple |
|---|---|---|
| == | Égal à | x == 5 |
| != | Différent de | x != 10 |
| > | Supérieur à | x > 0 |
| < | Inférieur à | age < 18 |
| >= | Supérieur ou égal à | score >= 100 |
| <= | Inférieur ou égal à | count <= 50 |
Exemples de conditions :
if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)
Attention : = (un seul signe) — c'est une affectation. == (deux signes) — c'est une comparaison. C'est une des erreurs les plus fréquentes chez les débutants ! Si tu écris par erreur :
if (x = 5) // ERREUR !
— le compilateur va râler, et il aura raison.
7. Travailler avec les chaînes dans les conditions
Tu peux comparer pas seulement des nombres, mais aussi des chaînes :
string password = Console.ReadLine();
if (password == "qwerty")
{
Console.WriteLine("Tu es connecté !");
}
Attention : comparer des chaînes avec == en C# marche bien dans les cas classiques, car ça compare le contenu des chaînes (et pas juste les références d'objet). On parlera plus en détail des subtilités de la comparaison de chaînes quand on abordera les méthodes sur les strings et la localisation.
8. Particularités et nuances :
Les accolades : obligatoires ou pas ?
Si après if ou else il n'y a qu'une seule commande, tu peux zapper les accolades :
if (age > 18)
Console.WriteLine("Tu as plus de 18 ans !");
// Mais c'est plus sûr de TOUJOURS les mettre :
if (age > 18)
{
Console.WriteLine("Tu as plus de 18 ans !");
}
Conseil : mets toujours les accolades. Ça t'évite plein d'erreurs, surtout quand tu ajoutes du code plus tard.
Erreurs logiques : fais gaffe aux conditions !
Si tu écris comme ça :
if (age > 18)
Console.WriteLine("Tu as plus de 18 ans !");
Console.WriteLine("Bienvenue !");
Le compilateur va lire ce code comme ça :
if (age > 18)
{
Console.WriteLine("Tu as plus de 18 ans !");
}
Console.WriteLine("Bienvenue !");
La deuxième ligne sera toujours exécutée — les accolades sont là pour que les deux lignes soient dans la même "branche".
GO TO FULL VERSION