W1037 for ループ脱出後のループ制御変数 '%s' の値は不定です (Delphi)

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

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

この警告は for ループの制御変数の値をループの後に使った場合に表示されます。

for ループの制御変数の最終地をあてにしてもよいのは、goto 文か exit 文でループを出た場合のみです。

この制限の目的は、コンパイラが for ループに効率的なコードを生成できるようにするためです。

program Produce;
(*$WARNINGS ON*)
 
function Test1: Integer;
var
  I: Byte;
begin
  Result := 0;
  for I := 0 to 255 do
    Inc(Result);
  WriteLn(I); // undefined
end;
 
begin
  Test1;
end.

この例では、制御変数がループの後に暗黙的に使用されるため、未定義の可能性がある - このため警告となる。