在for i:=1 to 6 的循环中为什么i是从6到1(20分)

  • 主题发起人 主题发起人 serenesky
  • 开始时间 开始时间
呵呵……这个问题我遇到过,特别是单步调试时,查 i 的值,经常出现这样的问题。
但真的程序正常执行时,不会出现这样的情况。我已是见怪不怪了~~

如果你一定要这么执着,那么就用:

for i:=6 downto 1 do begin
……
end;
就完事了。
 
var
i:integer;
i:=1;
for i:=1 to 6 do
begin
writeln(i);
end;
for i:=6 downto 1 do
begin
writeln(i);
end;

我都不信你测试不过
 
对pipi的解释我是相信的,不过我完全相信楼主的问题是真的,
因为我自己就碰到类似问题, 这可是千真万确的,
我在循环体中引用了i,但结果循环仍然出错,循环超过了指定的次数,当时的delphi版本是6:
for i:=0 to 10
begin
//if i>10 then break
xxx :=ccc;
end
大概是上面这样子,结果我加上注释的那一行才解决问题,而别的地方的for循环没有问题,
rebuild几次都没有用,
并不是总有这个问题,不过自此以后我对使用for就感到有点隐忧,
 
For循环内如果没用到循环变量那就是倒序循环。速度会快一些。
懂得汇编的循环原理就知道了
 
后退
顶部