如果在Google while和repeat..until循环之间存在重大差异,我会在Google上查看,但我没有找到任何有用或我正在寻找的东西.
我注意到while循环使我的程序没有响应,并且repeat工作效果比while.是否有任何具体原因,或者是否应该在不同情况下相互使用?
这是while循环中的代码:
var
m,val : Integer;
i,k : Real;
begin
val := StrToInt(edtShot.Text);
i := sqr(k);
k := sqrt(i+val);
m := 0;
while i <= 0 and k <= 10 do
begin
inc(m);
end;
end;
Run Code Online (Sandbox Code Playgroud)
这是一个repeat循环:
var
m,val : Integer;
i,k : Real;
begin
val := StrToInt(edtShot.Text);
i := sqr(k);
k := sqrt(i+val);
m := 0;
repeat
inc(m);
until i > 0 and k > 10;
end;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我知道上面的代码并没有多大意义,只是一个例子.
No'*_*man 10
保证'repeat'循环至少执行一次,因为只有在循环执行一次后才检查终止条件.在执行循环之前检查条件时,'while'循环甚至可能不会执行一次.
除此之外,它们应该花费相同的时间来执行.