W1037 FOR-Schleifenvariable %s' kann nach Durchlauf undefiniert sein (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Diese Warnung wird angezeigt, wenn die Steuervariable einer for-Schleife nach der Schleife verwendet wird.

Sie können sich nur auf den letzten Wert eines for-Schleifenzählers verlassen, wenn die Schleife mit einer goto- oder exit-Anweisung verlassen wird.

Der Grund für diese Einschränkung ist, dass der Compiler dadurch sehr effizienten Code für die for-Schleife erzeugen kann.

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.

In diesem Beispiel wird die Variable des Steuerelements implizit nach der Schleife verwendet, damit sie undefiniert ist, wenn der Compiler eine Warnung ausgibt.