Weshalb ich fragte, ob das Ergebnis nach der Schlafe denn wie erwartet ist...
NEIN.
"Nach" der Schleife ist i immer "ungültig".
Intern kann der Compiler das i anders laufen lassen, je nach Code-Optimierung, aber bei "Verwendung" ist i immer richtig (wird intern wieder umgerechnet)
Der Debugger zeigt nur manchmal was Falsches an, vorallem wenn man i innerhalb der Schleife garnicht verwendet.
Zitat:
Delphi-Quellcode:
MaxZahl:=20;
for i:=1 to MaxZahl do
Ach ja, Delphi cached den Endwert sowieso immer, weswegen man dort keine Variable benötigt.
Drum knallt es gern, wenn man Items aus Listen löscht und dabei die Schleife vorwärts durchläuft.