Developpez.com - Pascal
X

Choisissez d'abord la catégorieensuite la rubrique :

 

CHAPITRE V : Structures alternatives

Par Hugo ETIEVANT

  1. If ... Then ... Else ;
  2. Case ... Of ... End ;
 

1. If ... Then ... Else

Cette commande est similaire au basic, elle se traduit par : SI … ALORS … SINON …

Program exemple3a ;
Var
chiffre:integer ;
BEGIN

Write('Entrez un entier pas trop grand : ') ;
Readln(
chiffre) ;
If
chiffre < 100 then writeln(chiffre, ' est inférieur à cent.') else writeln(chiffre, ' est supérieur ou égale à cent.') ;
END.

Ce programme exemple3a compare un chiffre entré par l'utilisateur au scalaire 100. Si le chiffre est inférieur à 100, alors il affiche cette information à l'écran, sinon il affiche que le chiffre entré est supérieur ou égale à 100.

Program exemple3b ;
Var
chiffre:integer ;
BEGIN

Write('Entrez un entier pas trop grand : ') ;
Readln(
chiffre) ;
If
chiffre < 100 then
begin
writeln(
chiffre, ' est inférieur à cent.') ;
end
else
begin
writeln(
chiffre, ' est supérieur ou égale à 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 ne possède pas de point virgule car s'il en possédait un, alors 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 bloc IF dans un ELSE, comme l'illustre l'exemple3c 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 inférieur à 73.')
else writeln ( i, '
est supérieur ou égale à 73.')
END.

 

2. Case ... Of ... End

Cette instruction compare la valeur d'une variable de type entié ou caractère (et de manière générale de type intervalle, voir Chap Type) à tout un tas d'autres valeurs constantes.

Note : 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 laisse 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 l'a affecté 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éparartion 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 correcte ! }
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -