procedure TForm1.FormCreate(Sender: TObject);
var
x,y,count:Integer;
begin
x:= 0;
y:=0;
count:=0;
while True do begin
if x=100 then Break;
while True do begin
if y=100 then Break;
Inc(count);
Inc(y);
end;
Inc(x);
end;
ShowMessage(IntToStr(count));//100
end;
怎么是100 呢?
procedure TForm1.FormCreate(Sender: TObject);
var
x,y,count:Integer;
begin
x:= 0;
y:=0;
count:=0;
while True do begin
if x=100 then Break;
y :=0;
while True do begin
if y=100 then Break;
Inc(count);
Inc(y);
end;
Inc(x);
end;
ShowMessage(IntToStr(count)); //10000
end;y 没复位 呵呵
if y=100 then Break;
Inc(count);
Inc(y);
end;
之后count就为100了 ,接着在外层的循环,每次进入内层之后直接break了,count不在增加。
简化成 count:=0;
y :=0;
while True do begin
if y=100 then Break;
Inc(count);
Inc(y); //看出y是跟count同步的
end;
if y=100 then
就一直成立了,就Break内层循环!