E2081 for ループ制御変数 '%s' に代入しました (Delphi)

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

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

for ループの内部で for ループの制御変数へ値を代入するのは違法です。

予定より早くループを出るのが目的ならば,Break か goto 文を使用してください。


program Produce;

var
  I: Integer;
  A: array [0..99] of Integer;
begin
  for I := 0 to 99 do begin
    if A[I] = 42 then
      I := 99;
  end;
end.

{ この例ではプログラマは I へ 99 を代入すればプログラムがループから出ると考えた }


program Solve;

var
  I: Integer;
  A: array [0..99] of Integer;
begin
  for I := 0 to 99 do begin
    if A[I] = 42 then
      Break;
  end;
end.

{ for ループを出るには Break 文を使った方が問題が少ない }