E2153 ';' non autorisé avant 'ELSE' (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Vous avez placé un ';' directement avant un ELSE dans une instruction IF-ELSE. La raison de ce message est que le ';' est traité comme opérateur d'instruction et non comme terminaison d'instruction - IF-ELSE est une instruction, un ';' ne peut pas apparaître en son milieu (à moins que vous utilisiez les instructions composées).



program Produce;

  var
    b: Integer;

begin
  if b = 10 then
    b := 0;
  else
    b := 10;
end.

Le langage Delphi n'autorise pas qu'un ';' soit placé directement avant une instruction ELSE. Dans le code ci-dessus, une erreur sera produite.



program Solve;

  var
    b: Integer;

begin
  if b = 10 then
    b := 0
  else
    b := 10;

  if b = 10 then begin
    b := 0;
  end
  else begin
    b := 10;
  end;

end.

Il existe deux solutions simples à ce problème. La première est d'enlever le ';' mis en cause. La deuxième est de créer des instructions compound pour chaque partie de IF..ELSE. Si $HINTS est activée, vous recevrez une information sur la valeur affectée à 'b'.