- If ... Then ... Else ;
- 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 ! }
|