Tests conditionnels en langage C

Un test conditionnel permet de n’exécuter une instruction ou ensemble d’instructions que si une ou plusieurs conditions sont remplies.

Condition simple : SI condition réalisée ALORS action

Les tests conditionnels sont une structure de programmation courante, facile à programmer qui se traduit ainsi en C : IF condition réalisée THEN action. La condition doit être entourée de parenthèses.

Exemple :

If (age>=18) {
     printf "Le sujet est majeur";
}

L’action PRINTF “Le sujet est majeur” ne sera exécutée que si le contenu de la variable age est supérieur ou égal à 18.

Le test conditionnel repose sur une comparaison. C’est la réalisation ou non de la condition qui conditionne l’action à exécuter.

Expression de la comparaison :

La condition utilise une variable (dans l’exemple précédent la variable age), des opérateurs de comparaison (ici : >=) et des nombres et du texte. La notion de variable a déjà été introduite.

Les opérateurs de comparaison utilisés pour exprimer la condition sont pour une bonne part repris du monde des mathématiques :

  • < (inférieur à),
  • > (supérieur à),
  • <> (différent de),
  • = (égal à),
  • <= (inférieur ou égal à),
  • >= (supérieur ou égal à),
  • NOT (non)

Expression de conditions multicritères :

Le précédent exemple ne comprenait qu’un seul critère. La condition peut comprendre plusieurs critères. Chaque critère est lié au précédent par un opérateur && (et) ou || (ou).

Exemple :

If (age>=18) && (age<=30)… : Si l’âge est compris entre 18 et 30 ans (bornes comprises) alors…

If (age=30) || (age=45)… : Si l’âge est égal à 18 ans ou à 45 alors…

Attention aux conditions impossibles : par exemple, pour reprendre l’exemple précédent, la condition : If (age=30) && (age=45)… est irréalisable puisque la variable (ou un être humain normalement constitué d’ailleurs) ne peut simultanément prendre les valeurs 30 et 45.

Il est parfaitement possible d’imbriquer des conditions et de définir les priorités entre elles à l’aide de parenthèses. Dans ce cas, le régime des priorités répond aux mêmes règles qu’en mathématiques. A noter, chaque parenthèse ouverte doit être refermée…

Exemple :

If ((typeclient="Grand Compte") && ((CA>1000000) && (CA<5000000))) || ((typeclient="PME") && ((CA>10000) && (CA<50000))) {
TauxRemise = 0.10
}

Si le client est un grand compte et que son chiffre d’affaires est compris entre 1 et 5 millions ou s’il s’agit d’une PME et que son CA est compris entre 10 et 50 K€ alors le taux de remise appliqué est de 10 %.

Et sinon ?

Pour l’instant, nous avons programmé l’action à réalisé si la condition est remplie. Mais quid si l’action n’est pas remplie ? L’instruction Else permettra l’exécution d’une action alternative si la condition n’est pas remplie.

Exemple :

If (age>=18) {
     Printf "Le sujet est majeur";
}
Else {
     Printf "Le sujet est mineur";
}

Normalement, si vous avez bien suivi le cours, vous avez tout compris…

Tests conditionnels imbriqués :

La réalité des choses (et quelquefois la perversité du programmeur, poète à sa manière) conduit le programmeur à imbriquer des tests.

Ces tests seront effectués jusqu’à ce qu’une condition ne soit pas remplie ; dans ce cas le programme sort de la séquence de tests et continue son exécution.

La structure de programmation est la suivante :

If condition { If… { Else {…} : SI ALORS SINON SI ALORS SINON…

Le programmeur peut laisser libre cours à son imagination…

Et dans d’autres langage ?

La structure de programmation est “relativement” semblable d’un langage à l’autre.

Basic :

If age>=18 Then Etat="Majeur" Else Etat="Mineur"

VBA :

If age>=18 Then Etat="Majeur" Else Etat="Mineur"

(EndIf clôturera la structure conditionnelle si le test est présenté sur plusieurs lignes)

DELPHI :

If age>=18 Then Etat:='Majeur' Else Etat='Mineur';

PHP :

if($age >= 18):

$etat="Majeur";

else:

$etat="Mineur";

endif;

Approfondir le sujet : programmer en langage C

Share Button
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.