Les conditions sont la base des programmes un temps soit peu évolués. Elles permettent de ne pas faire toujours la même chose et d'éxécuter une partie de code que si la condition est remplie.
Prenons un exemple. Nous demandons à l'utilisateur de rentrer son âge. Nous voudrions afficher "Tu es un adulte!" ou "Tu es encore un enfant!" selon l'âge rentré (si il a plus de 18 ans, on affichera la première phrase, sinon la deuxième).
Voyons maintenant comment créer une condition:
if (condition)
{
//Code si la condition est vraie.
}
Vous voyez par vous même que ce n'est pas très dur. En plus le "if" veut dire "si" en anglais, ce qui donne littéralement:
Si [la condition] alors je fais ce qu'il y a entre accolades.
Passons maintenant à la condition à proprement parlé.
Nous pouvons demander, en C plusieurs choses en conditions, les voici:
-Si égal.
-Si supérieur.
-Si inférieur.
-Si inférieur ou égal.
-Si supérieur ou égal.
-Si différent de.
Nous allons les voir un par un (rassurez vous il n'y a qu'un tout petit détails qui change à chaque fois).
Si égal:
int mavariable = 25;
if (mavariable == 25)
{
//Code si la condition est vraie.
}
Dans cet exemple on regarde si la variable "mavariable" vaut 25. Ici il est évident que oui puisque nous la déclarons juste au dessus, mais imaginez que "mavariable" soit inconnue et que ça soit le spectateur qui la modifie.
Il y a cependant, quelques choses encore à voir sur les conditions, comme:
-Le else.
-Le else if.
-Le switch.
-Plusieurs conditions dans une.
-Les booléens.
Allez comme je sens que vous trépignez d'impatience à l'annonce de ce menu je vais tout vous expliquer!
Else:
Else veut dire "sinon" en anglais. Il est très pratique car permet de rendre son code beaucoup plus lisible et beaucoup moins complexe. Il suffit de placer, après avoir fait un
if, un
else et ,entre accolades, le code à exécuter si la première condition n'est pas remplie.
Reprenons le même exemple que tout à l'heure mais en rajoutant le
else:
#include <stdio.h>
#include <stdlib.h>
int main
()
{
printf
("Veuillez rentrer votre age: ");
int age
= 0;
scanf
("%d", &age
);
if(age
>= 18)
{
printf
("Ah! Vous avez %d ans et vous etes donc majeur!", age
);
}
else
{
printf
("Ah! Vous avez %d ans et vous etes donc mineur!", age
);
}
return 0;
}
C'est quand même beaucoup plus lisible!
Esle if:
On peut le traduire littéralement par "sinon si".
On pourrait le mettre comme ceci dans un code:
Bref c'est un peut un
if amélioré.
Le switch:
Bon pour l'instant c'est correct, nous n'avons pas marqué beacoup de conditions. Mais imaginez si vous deviez faire énormément de conditions d'affilé pour faire à chaque fois une action différente. Cela donnerait quelque chose comme:
if(machin
== 2)
{
}
if(machin
== 3)
{
}
if(machin
== 4)
{
}
if(machin
== 5)
{
}
if(machin
== 6)
{
}
................
Je vous l'accorde ce code est complétement stupide mais c'est juste pour cerner le problème.
Le switch permet de faire une zoli' présentation de toutes ces conditions là. Voyons ce que cela donnerait avec le switch. Je vous montre et je vous explique tout après
switch(machin
)
{
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
Il suffit donc, pour faire un switch, d'écrire "switch" puis entre parenthèse le nom de la variable à tester et entre les accolades mettre un
case X: (où X est ici un chiffre mais peut très bien être une lettre ou autre chose) puis finir par mettre un
break.
Le
break sert juste à indiquer que la condition s'arrête ici (un peu comme l'accolade de fin dans les conditions "classiques").
Si vous voulez faire une condition dans un
switch qui dirait "si aucune condition n'est vraie alors fait ça" il suffit de mettre au lieu d'un
case un
default comme ceci:
switch(machin
)
{
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
default:
//On met ici le code à éxécuter si aucune des autres conditions n'est vraie.
break;
}
Voilà, vous savez tout du switch
Deux conditions dans une:
Imaginons maintenant que vous souhaitez vérifier si la personne est majeur ET si oui si la variable "test" est égale à 10 (ici c'est évident, mais il peut arriver que l'on ne connaisse pas dès le départ la valeur d'une variable).
On ferait avec nos connaissances actuelles quelque chose ressemblant à ça:
#include <stdio.h>
#include <stdlib.h>
int main
()
{
printf
("Veuillez rentrer votre age: ");
int age
= 0;
int test
= 10;
scanf
("%d", &age
);
if(age
>= 18)
{
if(test == 10)
{
printf
("Inscription acceptee!");
}
}
else
{
printf
("Ah! Vous avez %d ans et vous etes donc mineur! Inscription refusee!", age
);
}
return 0;
}
Mais il est lourd de devoir écrire une condition dans une autre. En plus il n'y a, ici, que deux conditions, mais imaginez plus....
Mais je vais maintenant vous montrer que l'on peut fusionner les conditions.
Voici exactement le même code mais amélioré avec des conditions multiples dans une:
#include <stdio.h>
#include <stdlib.h>
int main
()
{
printf
("Veuillez rentrer votre age: ");
int age
= 0;
int test
= 10;
scanf
("%d", &age
);
if(age
>= 18 && test == 10)
{
printf
("Inscription acceptee!");
}
else
{
printf
("Ah! Vous avez %d ans et vous etes donc mineur! Inscription refusee!", age
);
}
return 0;
}
Je vous l'accorde ce n'est pas très utile pour l'instant. Mais croyez moi, c'est super utile quant il y a plusieurs variables à tester en même temps. Vous verrez de quoi je veux parler à partir du moment où nous apprendrons les boolééens, cela deviendra beaucoup plus utile
Passons aux explications:
Vous pouvez, dans une condition, faire ceci:
if(condition1 leSigne condition2 .....)
La "condition1" est une condition comme nous l'avons déjà vu, exemple: age == 18 (qui vérifie pour rappel que la variable age est bien égale à 18).
"Condition2" est exactemement la même chose.
Maintenant passons au signe entre les deux conditions (notez que vous pouvez mettre autant de conditions que vous le souhaitez dans une seule! Il suffit de mettre un des signes que nous allons voir entre chacune d'entre elles).
le signe && représente le "et".
le signe ! représente le "si ... faux".
le signe || représente le "ou".
Par exemple si vous souhaitez exécuter une instruction seulement si variable1 est égale à 10 et que variable2 est inférieure à 3 vous allez faire comme ceci:
if(variable1
== 10 && variable2
< 3)
{
//Instruction.
}
Et c'est exactement le même fonctionnement pour le "ou". Le "si..faux" est un peu plus spécial, c'est d'ailleurs pour cela que nous allons voir ici son fonctionnement. Mais avant ça, nous allons nous intéresser aux variables booléennes (rassurez vous c'est très simple

).
Une variable booléenne est une variable qui ne peut prendre que deux et seulement deux valeurs différentes. On s'en sert énormément en programmation pour dire vrai ou faux mais elle peut très bien vouloir dire autre chose comme noir et blanc, ouvert fermé, etc..
Imaginons pour notre exemple que le nombre 0 vaut faux et que le nombre 1 vaut vrai.
Avec une condition comme ceci:
int variable
= 1;
if(variable
)
{
//Intruction.
}
Vous allez certainement me dire que cela ne veut rien dire, mais pourtant...si!
Regardez: la condition dit: "si la variable est vrai".
Si vous vouliez dire si la variable n'est pas vrai alors il faudrait écrire:
int variable
= 1;
if(!variable
)
{
//Intruction.
}
Allez c'est pas si compliqué que ça la programmation!
Vous êtes maintenant des dieux avec les conditions! Entraînez-vous car ce chapitre est primordial! Il était certes long et conséquent mais rassurez vous la suite n'est pas plus dur! Juste quelques choses de nouvelles à chaque chapitre

. Nous allons maintenant voir dans le chapitre suivant les opérations mathématiques qui sont elles aussi très importantes.