Les conditions servent à "tester" des variables. On peut par exemple dire "Si la variable machin est égale à 50, fais ceci"... Mais ce serait dommage de ne pouvoir tester que l'égalité ! Il faudrait aussi pouvoir tester si la variable est inférieure à 50, inférieure ou égale à 50, supérieure, supérieure ou égale...
Ne vous inquiétez pas, le C a tout prévu
(mais vous n'en doutiez pas hein
)
Pour étudier les conditions "if... else", nous allons suivre le plan suivant :
- Quelques symboles à connaître avant de commencer
- Le test if
- Le test else
- Le test "else if"
- Plusieurs conditions à la fois
- Quelques erreurs courantes à éviter
Avant de voir comment on écrit une condition de type "if... else" en C, il faut donc que vous connaissiez 2-3 symboles de base. Ces symboles sont indispensables pour réaliser des conditions.
Quelques symboles à connaître
Voici un petit tableau de symboles du langage C
à connaître par coeur
| Symbole | Signification |
|---|
| == |
Est égal à |
| > |
Est supérieur à |
| < |
Est inférieur à |
| >= |
Est supérieur ou égal à |
| <= |
Est inférieur ou égal à |
| != |
Est différent de |
Faites très attention, il y a bien 2 symboles "=" pour tester l'égalité. Une erreur courante que font les débutants est de ne mettre qu'un symbole =, ce qui n'a pas la même signification en C. Je vous en reparlerai un peu plus bas.
Un if simple
Attaquons maintenant sans plus tarder

Nous allons faire un test simple, qui va dire à l'ordinateur :
Citation : Test simpleSI la variable vaut ça
ALORS fais ceci
En anglais, le mot "si" se traduit par "if". C'est celui qu'on utilise en langage C pour introduire une condition.
Ecrivez donc un if. Ouvrez ensuite des parenthèses : à l'intérieur de ces parenthèses vous devrez écrire votre condition.
Ensuite, ouvrez une accolade
{ et fermez-la un peu plus loin
}. Tout ce qui se trouve à l'intérieur des accolades sera exécuté
uniquement si la condition est vérifiée.
Cela nous donne donc à écrire :
Code : C | if (/* Votre condition */)
{
// Instructions à exécuter si la condition est vraie
}
|
A la place de mon commentaire "Votre condition", on va écrire une condition pour tester une variable.
Par exemple, on pourrait tester une variable "age" qui contient votre âge. Tenez pour s'entraîner, on va tester si vous êtes majeur, c'est-à-dire
si votre âge est supérieur ou égal à 18 :
Code : C | if (age >= 18)
{
printf ("Vous etes majeur !");
}
|
Le symbole
>= signifie "Supérieur ou égal", comme on l'a vu dans le tableau tout à l'heure.
S'il n'y a qu'une instruction entre les accolades, alors celles-ci deviennent facultatives. Vous pouvez donc écrire :
Code : C | if (age >= 18)
printf ("Vous etes majeur !");
|
Tester ce code
Si vous voulez tester les codes précédents pour voir comment le if fonctionne, il faudra placer le if à l'intérieur d'une fonction main et ne pas oublier de déclarer une variable age à laquelle on donnera la valeur de notre choix.
Ca peut paraître évident pour certains, mais apparemment ça ne l'était pas pour tout le monde aussi ai-je rajouté cette explication
Voici un code complet
que vous pouvez tester :
Code : C 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int age = 20;
if (age >= 18)
{
printf ("Vous etes majeur !\n");
}
return 0;
}
|
Ici, la variable age vaut 20, donc le "Vous êtes majeur !" s'affichera.
Essayez de changer la valeur initiale de la variable pour voir. Mettez par exemple 15 : la condition sera fausse, et donc "Vous êtes majeur !" ne s'affichera pas cette fois
Servez-vous de ce code de base pour tester les prochains exemples du chapitre
Une question de propreté
La façon dont vous ouvrez les accolades n'est pas importante, votre programme marchera aussi bien si vous écrivez tout sur une même ligne. Par exemple :
Code : C | if (age >= 18) { printf ("Vous etes majeur !"); }
|
Pourtant, même si c'est possible d'écrire comme ça, c'est
ultra déconseillé (notez que quand j'écris plus gros, en gras rouge souligné, c'est généralement parce que c'est vraiment important

)
En effet, tout écrire sur une même ligne rend votre code
difficilement lisible. Si vous ne prenez pas dès maintenant l'habitude d'aérer votre code, plus tard quand vous écrirez de plus gros programmes vous ne vous y retrouverez plus !
Essayez donc de présenter votre code source de la même façon que moi : une accolade sur une ligne, puis vos instructions (précédées d'une tabulation pour les "décaler vers la droite"), puis l'accolade de fermeture sur une ligne.
Le "else" pour dire "sinon"
Maintenant que nous savons faire un test simple, allons un peu plus loin : si le test n'a pas marché (il est faux), on va dire à l'ordinateur d'exécuter d'autres instructions.
En français, nous allons donc écrire quelque chose qui ressemble à cela :
Citation : Test avec sinonSI la variable vaut ça
ALORS fais ceci
SINON fais cela
Il suffit de rajouter le mot
else après l'accolade fermante du
if.
Petit exemple :
Code : C | if (age >= 18) // Si l'âge est supérieur ou égal à 18
{
printf ("Vous etes majeur !");
}
else // Sinon...
{
printf ("Ah c'est bete, vous etes mineur !");
}
|
Les choses sont assez simples : si la variable age est supérieure ou égale à 18, on affiche le message "Vous êtes majeur !", sinon on affiche "Vous êtes mineur".
Le "else if" pour dire "sinon si"
On a vu comment faire un "si" et un "sinon". Il est possible aussi de faire un "sinon si" pour faire un autre test si le premier test n'a pas marché. Le "sinon si" se met entre le if et le else.
On dit dans ce cas à l'ordinateur :
Citation : Avec un sinon siSI la variable vaut ça ALORS fais ceci
SINON SI la variable vaut ça ALORS fais ça
SINON fais cela
Traduction en langage C :
Code : C 1
2
3
4
5
6
7
8
9
10
11
12 | if (age >= 18) // Si l'âge est supérieur ou égal à 18
{
printf ("Vous etes majeur !");
}
else if ( age > 4 ) // Sinon, si l'âge est au moins supérieur à 4
{
printf ("Bon t'es pas trop jeune quand meme...");
}
else // Sinon...
{
printf ("Aga gaa aga gaaa gaaa"); // Langage Bébé, vous pouvez pas comprendre ;o)
}
|
L'ordinateur fait les tests dans l'ordre :
- D'abord il teste le premier if : si la condition est vraie, alors il exécute ce qui se trouve entre les premières accolades.
- Sinon, il va au "sinon si" et fait à nouveau un test : si ce test est vrai, alors il exécute les instructions correspondantes entre accolades.
- Enfin, si aucun des tests précédents n'a marché, il exécute les instructions du "sinon".
Citation : Plusieurs else ifSI la variable vaut ça
ALORS fais ceci
SINON SI la variable vaut ça ALORS fais ça
SINON SI la variable vaut ça ALORS fais ça
SINON SI la variable vaut ça ALORS fais ça
SINON fais cela
Plusieurs conditions à la fois
Il peut aussi être utile de faire plusieurs tests à la fois dans votre if. Par exemple, vous voudriez tester si l'âge est supérieur à 18 ET si l'âge est inférieur à 25.
Pour faire cela, il va falloir utiliser de nouveaux symboles :
Test ET
Si on veut faire le test que j'ai mentionné plus haut, il faudra écrire :
Code : C | if (age > 18 && age < 25)
|
Les deux symboles "&&" signifient ET. Notre condition se dirait en français : "
Si l'âge est supérieur à 18 ET si l'âge est inférieur à 25"
Test OU
Pour faire un OU, on utilise les 2 signes ||. Je dois avouer que ce signe n'est pas facilement accessible sur nos claviers. Pour le taper sur un clavier AZERTY français, il faudra faire
Alt Gr + 6. Sur un clavier belge, il faudra faire Alt Gr + &.
Imaginons un programme débile qui décide si une personne a le droit d'ouvrir un compte en banque. C'est bien connu, pour ouvrir un compte en banque il vaut mieux ne pas être trop jeune (on va dire arbitrairement qu'il faut avoir au moins 30 ans) ou bien avoir plein d'argent (parce que là même à 10 ans on vous acceptera à bras ouverts

)
Notre test pour savoir si le client a le droit d'ouvrir un compte en banque pourrait être :
Code : C | if (age > 30 || argent > 100000)
{
printf("Bienvenue chez PicsouBanque !");
}
else
{
printf("Hors de ma vue, miserable !");
}
|
Ce test n'est valide que si la personne a plus de 30 ans ou si elle possède plus de 100 000 euros
Test NON
Le dernier symbole qu'il nous reste à tester est le point d'exclamation. En informatique, le point d'exclamation signifie "Non".
Vous devez mettre ce signe
avant votre condition pour dire "Si cela n'est pas vrai" :
Code : C
Cela pourrait se traduire par "
Si la personne n'est pas mineure".
Si on avait enlevé le "!" devant, cela aurait signifié l'inverse : "
Si la personne est mineure".
Quelques erreurs courantes de débutant
N'oubliez pas les 2 signes ==
Si on veut tester si la personne a tout juste 18 ans, il faudra écrire :
Code : C | if (age == 18)
{
printf ("Vous venez de devenir majeur !");
}
|
N'oubliez pas de mettre 2 signes "égal" dans un if, comme ceci :
==
Si vous ne mettez qu'un seul signe =, alors votre variable
prendra la valeur 18 (comme on l'a appris dans le chapitre sur les variables). Nous ce qu'on veut faire ici, c'est tester la valeur de la variable, pas la changer ! Faites très attention à cela, beaucoup d'entre vous n'en mettent qu'un quand ils débutent et forcément... leur programme ne marche pas comme ils voudraient
Le point-virgule de trop
Une autre erreur courante de débutant : vous mettez parfois un point-virgule à la fin de la ligne d'un if. Or, un if est une condition, et on ne met de point-virgule qu'à la fin d'une instruction et non d'une condition.
Le code suivant ne marchera pas comme prévu car il y a un point-virgule à la fin du if :
Code : C | if (age == 18); // Notez le point-virgule ici qui ne devrait PAS être là
{
printf ("Tu es tout juste majeur");
}
|