Instructions conditionnelles
Les instructions de contrôle utilisées en algorithmique se divisent en 2 grandes catégories : les instructions conditionnelles et les instructions de bouclage. Les instructions conditionnelles permettent de choisir entre des traitements différents, et les instructions de bouclage sont utilisées pour répéter plusieurs fois un même traitement. Dans cette section, nous détaillons l'ensemble des instructions conditionnelles existantes.
Alternatives à un ou deux choix
Ces instructions conditionnelles se basent sur la réalisation d'une seule condition pour choisir le traitement à exécuter. Elles peuvent prendre deux formes, à savoir : l’alternative simple, ou l’alternative complète.
L'alternative simple
L’alternative simple (appelée aussi instruction conditionnelle SI ... ALORS) est une instruction que nous utilisons lorsque nous voulons effectuer un traitement spécifique si une condition est vraie, et ne rien faire si la condition est fausse. Souvent la condition utilisée dans l'instruction SI ... ALORS est de comparaison.
Syntaxe : L'instruction SI ... ALORS
La syntaxe algorithmique de cette instruction est[1] :
SI (condition) ALORS
Traitement ;
FIN SI ;
En langage C :
if (condition)
{
Traitement ;
}

Exemple : La valeur absolue d'un entier
Écrire un algorithme qui calcule la valeur absolue d'un entier.
ALGORITHME valeur_absolue;
VAR Nombre : Entier ;
DÉBUT
LIRE (nombre) ;
SI (nombre < 0) ALORS
nombre <- -(nombre) ;
FIN SI;
ÉCRIRE ('La valeur absolue est', nombre) ;
FIN.
Exemple : L'inverse d'un nombre : algorithme plus complet
Améliorer l'algorithme "Inverse" pour prendre en considération le cas de la division par zero.
ALGORITHME InverseComplet ;
VAR nombre: Réel ;
DÉBUT
ÉCRIRE (‘Donner un nombre') ;
LIRE (nombre) ;
SI (nombre <> 0) ALORS
ÉCRIRE (‘L'inverse du nombre : ‘, nombre, ‘ est : ‘, 1/nombre) ;
FIN Si ;
SI (nombre = 0) ALORS
ÉCRIRE (‘le nombre tapé est nul‘) ;
FIN Si ;
FIN.
L'alternative complète
L’alternative complète (également appelée instruction conditionnelle SI ... ALORS ... SINON) exprime un choix entre deux traitements : Traitement 1 et Traitement 2. Lorsque la condition de l'instruction est satisfaite (retourne VRAI), nous effectuons directement Traitement 1. Lorsque la condition n'est pas satisfaite (retourne FAUX), nous ignorons Traitement 1 et nous effectuons Traitement 2.
Syntaxe : L'instruction SI ... ALORS ...... SINON
La syntaxe algorithmique de l'instruction est donnée comme suit[1] :
SI (condition) ALORS
Traitement 1 ;
SINON
Traitement 2 ;
FIN SI ;
En langage C :
if (condition)
{
Traitement 1 ;
}else
{
Traitement 2 ;
}

Exemple : L'inverse d'un nombre avec l'alternative complète
Écrire un algorithme qui calcule l'inverse d'un nombre en utilisant l’alternative complète.
ALGORITHME InverseAltcomp;
VAR nombre : Réel ;
DÉBUT
LIRE (nombre) ;
SI (nombre <> 0) ALORS
ÉCRIRE ('L'inverse du nombre : ', nombre, ' est : ', 1/nombre) ;
SINON
ÉCRIRE ('le nombre introduit est nul') ;
FIN SI ;
FIN.
Alternative à plusieurs choix
Dans le cas d'un choix multiple, il est possible d'imbriquer plusieurs instructions conditionnelles simples ou complètes pour former une structure plus complexe capable de supporter le nombre de choix à faire.
Exemple : L'observation selon la moyenne d'un étudiant
Écrire un algorithme qui lit la moyenne d'un étudiant et lui affiche une observation. L'observation est :
Admis si la moyenne est supérieure ou égale à10.
Racheté si la moyenne est strictement inférieure à10 et supérieure ou égale à 9.5.
Ajourné si la moyenne est strictement inférieure à 9.5.
ALGORITHME Observation ;
VAR Moyenne : Réel ;
DÉBUT
LIRE (Moyenne);
SI (Moyenne >= 10) ALORS
ÉCRIRE ('Admis');
SINON
SI (Moyenne >= 9.5) ALORS
ÉCRIRE ('Racheté');
SINON
ÉCRIRE ('Ajourné');
FIN SI ;
FIN SI ;
FIN.
L'instruction SELON ... FAIRE (CASE ... OF)
Cette instruction conditionnelle est appelée aussi condition à choix sélectif. Car, elle sélectionne entre plusieurs choix à la fois, et non entre deux choix alternatifs. La particularité de cette instruction est l'utilisation d'une expression arithmétique, contrairement aux instructions précédentes qui utilisent une ou plusieurs conditions.
Syntaxe : L'instruction SELON ... FAIRE
La syntaxe algorithmique de l'instruction SELON ... FAIRE est comme suit[2] :
SELON (expression) FAIRE
CAS C1 : Traitement 1 ;
CAS C2 : Traitement 2 ;
CAS C3 : Traitement 3 ;
...
CAS CN : Traitement N ;
CAS AUTRE Traitement (N+1) ;
FIN SELON ;
En langage C :
switch (expression)
{
case C1 : Traitement 1 ; break;
case C2 : Traitement 2 ; break;
case C3 : Traitement 3 ; break;
...
case CN : Traitement N ; break;
default : Traitement (N+1) ;
END;

Exemple : Le nombre de jours d'un mois
Écrire un algorithme qui affiche le nombre de jours d'un mois donné par l'utilisateur.
ALGORITHME jours_mois ;
VAR mois : Entier ;
DÉBUT
ÉCRIRE ('De quel mois s'agit-il?');
LIRE (mois) ;
SELON (mois) FAIRE
CAS 1 , 3 , 5 , 7 , 8 , 10 , 12 : ÉCRIRE ('Nombre de jours : 31' ) ;
CAS 4 , 6 , 9 , 11 : ÉCRIRE ('Nombre de jours : 30') ;
CAS 2 : ÉCRIRE ('Nombre de jours : 28 ou 29') ;
CAS AUTRE ÉCRIRE ('Ce mois n'existe pas') ;
FIN SELON ;
FIN.