Else/fr

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) español (es) suomi (fi) 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