Das ist sogar noch witziger:
Delphi-Quellcode:
type
TSet = set of 0..3;
procedure Main;
var
s: TSet;
I: 0..3;
begin
s := [1,3];
for I in s do
begin // <== BreakPoint 1
Writeln(I); // <== BreakPoint 2
end;
end; // <== BreakPoint 3
BreakPoint 1 wird 8x durchlaufen! BreakPoint 2 erwartungsgemäß nur 2x.
Bei den Durchläufen vor dem ersten Writeln hat I nicht mal einen definierten Wert.