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'ommettre 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 !).


