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
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024