Else/fr

From Lazarus wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) русский (ru)

Else dans la référence du langage

Else est un mot-clé qui introduit une action à faire quand la condition du if n'est pas vérifiée.

If then else

  if (condition)
  then ''true_statement''
  else ''false_statement'';

La condition est évaluée, si la valeur est vraie alors true_statement est exécuté sinon false_statement est exécuté. La valeur de condition doit se ramener à un booléen sous peine d'erreur de compilation.

Plus d'instructions dans l'instruction "if then else"

Si vous avez besoin de 2 instructions ou plus pour true_statement ou false_statement, alors la suite d'instructions doit être placé dans un bloc délimité par begin et end.

  if boolean_condition then
    begin
      statement_one;
      statement_two;
    end 
  else
    begin
      statement_three;
      statement_four;
    end;

Dans un usage normal, l'instruction "else" est une exception spéciale à la règle qui veut que chaque instruction est suivie d'un point-virgule. Ni le mot-clé "else" ni l'instruction qui le précède immédiatement peuvent avoir un point-virgule qui le suit. Dans l'exemple ci-dessus, la première instruction "end" n'est pas suivie d'un point-virgule, mais la dernière l'est.

Toutefois, dans le cas des instructions "if" imbriquées, si le else s'applique au if le plus interne, le point-virgule ne doit pas apparaître avent le else, si le else s'applique au if le plus externe alors le point-virgule doit apparaître avant le else.

  if a then
      if b then 
        begin
           (..)
        end;
      else
        begin
           (..)
        end;

Dans ce cas, le "else" s'applique au "if a"

  if a then
      if b then 
        begin
           (..)
        end
      else
        begin
           (..)
        end;

Dans ce cas, le "else" s'applique au "if b". Si cela amène des ambiguïtés, elles peuvent être résolues en codant une instruction "else" "vide" :

  if a then
      if b then 
        begin
           (..)
        end
      else
  else
      begin
           (..)
      end


Avis du traducteur : pour éviter les ambiguïtés dans de tels cas, forcer l'emploi des begin et end pour bien délimiter les blocs.
Keywords: begindoelseendforifrepeatthenuntilwhile