4. Traitement conditionnel
On appelle traitement conditionnel, une portion de code qui n'est pas exécutée systématiquement, c'est-à-dire des instructions dont l'exécution est conditionnée par le succès d'un test.
4-1. if()
Principe
En algorithmique un traitement conditionnel se rédige de la sorte:
si(condition) alors
instruction
FinSi
Si la condition est vérifiée, alors les instructions sont exécutés, sinon, elles ne sont pas exécutées. L'exécution de l'algorithme se poursuit en ignorant les instructions se trouvant entre le "alors" et le "Finsi". Un traitement conditionnel se code de la sorte, en C:
if(condition)
{
instruction;
}
Notez bien qu'il n'y a pas de point-virgule après la parenthèse du if.
Comparaisons
La formulation d'une condition se fait souvent à l'aide des opérateurs de comparaison. Les opérateurs de comparaison disponibles sont:
- == : égalité;
- != : non-égalité (différent);
- <, <=, :inférieur à, inférieur ou égal à;
- >, >= : supérieur à, supérieur ou égal à;
Par exemple, la condition a==b est vérifiée si et seulement si a et b ont la même valeur au moment où le test est évalué.
#include < stdio.h >
main()
{
int n ;
printf ("Entrer un nombre: ");
scanf("%d", &n);
if(i==0)
printf ("Vous avez saisi une valeur nulle !");
}
4-2. if()....else
Il existe une forme étendue de traitement conditionnel, on la note en algorithmique de la façon suivante:
si(condition) alors
instruction
sinon
instruction
FinSi
Les instructions délimitées par "alors" et "sinon" sont exécutées si le test est vérifié, et les instructions délimitées par sinon et Finsi sont exécutées si le test n'est pas vérifié. On traduit cela, en C, comme suit:
if(condition)
{
instruction;
}
else
{
instruction;
}
Connecteurs logiques
On formule des conditions davantage élaborées en utilisant des connecteurs logiques "et" et "ou". La condition A et B est vérifiée si les deux conditions A et B sont vérifiées simultanément. La condition A ou B est vérifiée si au moins une de ces deux conditions A et B est vérifiée. Le "et" s'écrit && et le "ou" s'écrit || en C.
Voici un programme C qui nous donne le signe de a*b sans les multiplier.
#include < stdio.h >
main()
{
int a , b;
printf ("Entrer a: ");
scanf("%d", &a);
printf ("Entrer b: ");
scanf("%d", &b);
if((a<0 && b<0) || (a>0 && b>0))
printf("Le produit de %d et %d est positif", a, b);
else if(a==0 || b==0)
printf("Le produit de %d et %d est nul", a, b);
else
printf("Le produit de %d et %d est negatif", a, b);
}
Résultat