Cette instruction permet en fonction du résultat d'un test (expression booléenne) d'effectuer un traitement ou un autre.
if test then
begin
T1
end (*!!! Pas de point virgule !!!*)
else
begin
T2
end;
Si l'expression booléenne test possède la valeur
true alors on effectue les instructions de
traitement du bloc T1.
Si l'expresion booléenne test possède la valeur
false alors on effectue les instructions de
traitement du bloc T2.
Le programme suivant calcule
program racine;
var x : real;
begin
writeln('x = ');
readln(x);
if x>0 then
begin
x:=sqrt(x);
writeln(x);
end
else
begin
x:=sqrt(-x);
writeln(x);
end;
end.
Si le bloc d'instruction correspondant à T1 ou à T2 se
ramène à une seule instruction, le begin et le
end ne sont plus obligatoires.
if z=0 then
writeln('z vaut zero')
else
writeln('z est non nul');
On peut avoir des instructions if imbriquées.
if z=0 then
writeln('z vaut zero')
else
if z>0 then
writeln('z est positif')
else
writeln('z est negatif');
Il faut faire attention à la situation suivante.
if a>b then
x:=x+y;
b:=b/a;
est différent de
if a>b then
begin
x:=x+y;
b:=b/a;
end;
if test then
B
else begin
end;
s'écrira
if test then
B;
), >= (
),<>, (
).if (x>y) and (x>z) then .....