while循环与重复循环delphi

Aid*_*inn -4 delphi delphi-7

如果在Google whilerepeat..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'循环甚至可能不会执行一次.

除此之外,它们应该花费相同的时间来执行.