Chapitre 5 - Structures conditionnelles▲
If .. then … else …▲
Cette instruction se traduit par : Si … alors … sinon ….
Program
Exemple3a;
Var
Nombre : Integer
;
Begin
Write
('Entrez un entier pas trop grand : '
);
Readln(Nombre);
if
Nombre < 100
then
WriteLn(Nombre, ' est inférieur à cent.'
) else
WriteLn(Nombre, ' est supérieur ou égal à cent.'
);
End
.
Ce programme Exemple3a compare un nombre entré par l'utilisateur au scalaire 100. Si le nombre est inférieur à 100, alors il affiche cette information à l'écran, sinon il affiche que le nombre entré est supérieur ou égal à 100.
Program
Exemple3b;
Var
Nombre : Integer
;
Begin
Write
('Entrez un entier pas trop grand : '
);
Readln(Nombre) ;
if
Nombre < 100
then
begin
WriteLn(Nombre, ' est inférieur à cent.'
);
end
else
begin
WriteLn(Nombre, ' est supérieur ou égal à cent.'
);
end
;
End
.
Ce programme Exemple3b fait strictement la même chose que le 3a, mais sa structure permet d'insérer plusieurs autres commandes dans les sous-blocs then et else. Notez que le end terminant le then n'est pas suivi d'un point-virgule, car, si c'était le cas, le else n'aurait rien à faire ici et le bloc condition se stopperait avant le else.
Il est également possible d'insérer d'autres blocs if dans un else, comme l'illustre l'exemple qui suit :
Program
Exemple3c;
Var
i : Integer
;
Begin
Randomize;
i := random(100
);
if
i < 50
then
WriteLn ( i, ' est inférieur à 50.'
)
else
if
i < 73
then
WriteLn ( i, ' est supérieur ou égal à 50, et inférieur à 73.'
)
else
WriteLn ( i, ' est supérieur ou égal à 73.'
)
End
.
Case … of … end▲
Cette instruction compare la valeur d'une variable de type scalaire à tout un tas d'autres valeurs constantes.
Attention, car Case of ne permet de comparer une variable qu'avec des constantes.
Program
Exemple4;
Var
Age : Integer
;
Begin
Write
('Entrez votre âge : '
);
Readln(Age);
case
Age of
18
: WriteLn('La majorité, pile-poil !'
);
0
..17
: WriteLn('Venez à moi, les petits enfants...'
);
60
..99
: WriteLn('Les infirmières vous laissent jouer sur l''ordinateur à votre âge ?!!!'
)
else
WriteLn('Vous êtes d''un autre âge...'
);
end
;
End
.
Ce programme Exemple4a vérifie certaines conditions quant à la valeur de la variable age dont la valeur est entrée l'utilisateur. Et là , attention : le point-virgule avant le else est facultatif. Mais pour plus sécurité afin de ne pas faire d'erreur avec le bloc if, choisissez systématiquement d'omettre le point-virgule avant un else.
Note : On peut effectuer un test de plusieurs valeurs en une seule ligne par séparation avec une virgule si on souhaite un même traitement pour plusieurs valeurs différentes. Ainsi la ligne :
0
..17
: writeln('Venez à moi, les petits enfants…'
);
peut devenir :
0
..10
, 11
..17
: writeln('Venez à moi, les petits enfants…'
);
ou encore :
0
..9
, 10
, 11
..17
: writeln('Venez à moi, les petits enfants…'
);
ou même :
0
..17
, 5
..10
: writeln('Venez à moi, les petits enfants…'
);
(cette dernière ligne est stupide, mais syntaxiquement correcte !).