La structure conditionnelle permet d'influer et de piloter le déroulement du programme. Si vous
avez pratiqué le Basic, vous ne serez pas dépaysé, puisque la syntaxe est quasiment la même :
if condition then instruction;
if veut dire SI en anglais, et then, ALORS. En clair, SI la condition
est vraie, ALORS on execute les instructions.
Je pense que vous pouvez prévoir de vous même le résultat du programme suivant :
var Age : Integer;
begin
write('Entrez votre age : ');
read(Age);
if Age > 18 then writeln('C''est bon, vous êtes majeur.'); { SI Age > 18 ALORS ...}
end.
Si la condition n'est pas remplie, on peut executer une autre instruction. Comme en Basic, il
faudra employer else, qui veut dire AUTRE. L'instruction ne sera donc executée que si la
condition n'est pas vrai :
var Age : Integer;
begin
write('Entrez votre age : ');
read(Age);
if Age > 18 then writeln('C''est bon, vous êtes majeur.') { SI Age > 18 ALORS ...}
else writeln('Rentre chez toi, morveux !'); { SI NON ...}
end.
Vous remarquez que le désormais classique point-virgule se trouve maintenant sur la deuxième ligne.
Et si au lieu d'une seule instruction, on en avait plusieurs ? On ne va pas utiliser un if...then...else
par instruction. Cela marcherai, mais ça aurait pour conséquence de ralentir l'execution du programme
de manière affreuse.
On va donc créer un bloc d'instructions, ou plutôt une séquence d'instructions
comme il est écrit dans le fichier d'aide officiel.
Sans le savoir, vous êtes déjà familiarisé avec cette chose, puisqu'il s'agit ni plus, ni moins
du begin...end.
Une séquence d'instruction est considérée comme étant une seule instruction. Cela explique l'utilisation
du point-virgule dans l'exemple suivant :
begin
begin
writeln('Ceci est un bloc d''instruction');
end;
end.
On peut comparer le begin...end aux accolades du C++, ou du JavaScript.
Voici un exemple de programme mariant les conditions et les blocs d'instructions :
var Age : Integer;
begin
write('Entrez votre age : ');
read(Age);
if Age > 18 then
begin { 1er bloc d'instructions }
writeln('C''est bon, vous êtes majeur.');
writeln('Vous pouvez rentrer');
end { Pas de point virgule }
else
begin { 2eme bloc d'instructions }
writeln('Rentre chez toi, morveux !');
writeln('Et que je ne te vois plus trainer par ici!');
end; { Ici, un point virgule }
end.
En Pascal, il n'y a pas de ELSEIF comme en Basic.
On peut contourner l'obstacle en utilisant un >if...then...else dans le else
de l'instruction précedente et ainsi de suite :
var Age : Integer;
begin
write('Entrez votre age : ');
read(Age);
if Age < 18 then { SI Age < 18 ALORS...}
begin
writeln('Rentre chez toi, morveux !');
writeln('Et que je ne te vois plus trainer par ici!');
end { Pas de point virgule }
else if Age > 65 then { SINON SI Age > 65 ALORS...}
begin
writeln('Vous me semblez bien vieux pour ce genre de choses...');
writeln('Rentrez sagement chez vous');
end { Pas de point virgule non plus}
else { SINON ...}
begin
writeln('C''est bon, vous êtes majeur.');
writeln('Vous pouvez rentrer');
end; { Ici, un point virgule }
end.
|