Das liegt an der Break-Anweisung. Der Compiler stellt nach dem Break den aktuellen Schleifenindex zur Verfügung. Kommentiere nur das Break aus, dann dürfte eine Warnung kommen.
Das Verlassen der Schleife kann aber nicht der einzige Grund sein, ersetzt man das
break durch ein
goto
Delphi-Quellcode:
procedure forProc();
label xx;
var
myArray: TArray<Single>;
arrayIndex: Integer;
begin
for arrayIndex := Low(myArray) to High(myArray) do
if (arrayIndex = 42) then goto xx;
xx:
WriteLn(arrayIndex);
readln;
end;
dann erhält man 3 (in Worten
drei) mal die gleiche Warnung.