Ok, after a hard days work, I'm not seeing things as clear I would like to so I'm hoping you folks could help me here...

I was expecting to see these loops doing exactly the same, but they don't... why?
[pascal]procedure TForm1.Button1Click(Sender: TObject);
var x, y: integer;
begin
x := 0;
y := 0;
while x < 3 do
begin
inc(x);
while y < 3 do
begin
inc(y);
showmessage('A:'+inttostr(x)+','+inttostr(y));
end;
end;

for x := 1 to 3 do
begin
for y := 1 to 3 do
begin
showmessage('B:'+inttostr(x)+','+inttostr(y));
end;
end;
end;[/pascal]

Also, as you are probably wondering why I wanted to know: here's my next question. Is a while loop in this particular case faster? (Provided that they give the same outcome)