E2153 else の前にはセミコロン (;) があってはなりません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

if..else 文の else の直前にセミコロン「;」があります。セミコロンは文の終わりでなく文の区切りとして扱われます。if..else は 1 つの文であり,複文を使った場合以外,間にセミコロンは入りません。


program Produce;

  var
    b : Integer;

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

{ Delphi 言語では else 文の直前にはセミコロン「;」を付けられない。そのためにこのコードではエラーが発生する }


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.

{ この問題には 2 つの簡単な解決方法がある。1 つはエラーを起こしたセミコロンを削除する方法である。もう 1 つは if..else の個々の部分に複合文を作成する方法である。$HINTS が ON の場合は,B へ代入した値が決して使用されないというヒントが表示される }