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 .....