« Langage Pascal/Instruction conditionnelle » : différence entre les versions
Page créée avec « {{ébauche informatique}} {{Chapitre | titre = Instruction conditionnelle | idfaculté = informatique | leçon = ../ | numero = 4 | précédent = [[.... » |
(Aucune différence)
|
Version du 15 octobre 2009 à 14:28
Instruction conditionnelle
Une instruction conditionnelle permet d'exécuter des instructions seulement dans une certaine condition.
var
age : integer;
begin
writeln('Quel est ton âge?');
readln(age);
if a < 18 then
begin
writeln('Tu es mineur.')
end
end.
Ainsi, dans l'exemple ci-dessus, le programme indiquera à l'utilisateur qu'il est mineur seulement s'il son âge est strictement inférieur à 18.
On peut également préciser ce que le programme doit faire dans le cas contraire. Les deux exemples suivants sont donc presque équivalents.
var
age : integer;
begin
writeln('Quel est ton âge?');
readln(age);
if a < 18 then
begin
writeln('Tu es mineur.')
end;
if a >= 18 then
begin
writeln('Tu es majeur.')
end
end.
var
age : integer;
begin
writeln('Quel est ton âge?');
readln(age);
if a < 18 then
begin
writeln('Tu es mineur.')
end
else
begin
writeln('Tu es majeur.')
end
end.
Dans les deux cas, le programme indiquera si l'utilisateur est mineur ou majeur. Cependant, le premier exécutera deux fois le test, mais pas le second exemple. Ce dernier est donc à préférer.
Une dernière forme est possible, permettant des if en cascade.
var
age : integer;
begin
writeln('Quel est ton âge?');
readln(age);
if a <= 10 then
begin
writeln('Mais tu es tout petit! Oo')
end
else if a < 18 then
begin
writeln('Tu es encore mineur.')
end
else if a >= 60 then
begin
writeln('Wouaw, tu vieillis dis donc...');
end
end.
Les if en cascade permettent du cas par cas:
- Ceux qui ont 10 ans ou moins recevront le message Mais tu es tout petit! Oo.
- Parmi ceux qui ont plus de 10 ans, ceux qui ont également moins de 18 ans recevront Tu es encore mineur..
- Ceux qui ont 60 ans ou plus, verront apparaitre le message Wouaw, tu vieillis dis donc....
- Et enfin, les derniers, ceux qui ont 18 ans ou plus et moins de 60 ans, ne verront aucun message apparaitre.
case of
Imaginons un cas dans lequel il nous faudrait utilisé une longue série de if en cascade, celle-ci peut devenir rapidement difficile à lire. Pour cela, il existe une autre structure : le case of.
Prenons un exemple qui attend un chiffre et l'écrit en toute lettre :
var
a : integer;
begin
writeln('Quel est ton âge?');
readln(age);
if a = 1 then
begin
writeln('un')
end
else if a = 2 then
begin
writeln('deux')
end
else if a = 3 then
begin
writeln('trois')
end
else if a = 4 then
begin
writeln('quatre')
end
else if a = 5 then
begin
writeln('cinq')
end
else if a = 6 then
begin
writeln('six')
end
else if a = 7 then
begin
writeln('sept')
end
else if a = 8 then
begin
writeln('huit')
end
else if a = 9 then
begin
writeln('neuf')
end
else
begin
writeln('Je veux un chiffre');
end
end.
Ça peut vite devenir lourd à lire et à écrire. Voyons ce que donne le même résultat en utilisant la structure case of :
var
a : integer;
begin
writeln('Quel est ton âge?');
readln(age);
case a of
1 : writeln('un');
2 : writeln('deux');
3 : writeln('trois');
4 : writeln('quatre');
5 : writeln('cinq');
6 : writeln('six');
7 : writeln('sept');
8 : writeln('huit');
9 : writeln('neuf');
else writeln('je veux un chiffre!!!')
end
end.
Et voila comment le case of peut fournir un code beaucoup plus compréhensif et compacte que les if en cascade.
Liste des opérateurs de l'instruction conditionnelle en Pascal
= : égal à
< : strictement inférieur à
<= : inférieur ou égal à
> : strictement supérieur à
>= : supérieur ou égal à
<> : différent de