if ... then ... else

if then else est la principale structure de contrôle conditionnelle.

Instruction

Deux formes sont possibles:

  • if <expressionBooléenne> then <action1>;
  • if <expressionBooléenne> then <action1> else <action2>;

Notez l'absence de point-virgule ; avant le else.

Bien qu'on puisse tout écrire sur une seule ligne, il est recommandé d'écrire la condition et les instructions sur des lignes différentes (ce qui facilite la lisibilité et le débogage pas à pas).

Si les actions sont constituées de plusieurs instructions, il est possible d'utiliser des blocs begin end:

if test0 then
   action0;

if test1 then
   action1      // pas de ; avant else
else
   action1bis;

if test1 then begin
   action1;
   action2;
end else begin  // pas de ; entre end et else
   action1bis;
   action2bis;
end;

if test2 then   // pas de bloc begin..end
   action3      // => pas de ; avant else
else begin
   action4;
   action5;
end;

Expression

Il est aussi possible d'utiliser les deux formes de if then else au sein d'expressions.

PrintLn(if test then 'test is True' else 'test is False');

Dans la forme sans **else*, si la condition est False, la valeur de l'expression sera la valeur par défaut du type (0 pour un Integer, 0.0 pour un Float, chaîne vide pour une chaîne, etc.)

var i := if condition then 123;
var s := if condition then 'hello';

Dans le code ci-dessus, le type de i sera Integer, et sa valeur sera 123 si condition est True, zero sinon.Le type de s sera String, et sa valeur sera 'hello' si condition est True, une chaîne vide sinon.