循环变量如何在循环中赋值??(200分)

  • 主题发起人 主题发起人 壹平
  • 开始时间 开始时间

壹平

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位!
为何老是编译不通过??
for i:=0 to 100do
i:=1+10;
 
循环变量不允许修改
 
不是不允许,是绝对禁止!呵呵
 
Delphi 1.0 可以
d2以后不可以对循环控制变量赋值
 
厉害呀,我在外面看是没人回答
回答者0
近来看有人回答了,不甘心,贴一张吧
出去一看,又多了个人
回答者3
 
如果想修改循环变量,可以用while或者repeat语句
如:
i:=0;
while i<=100do
begin
//do something;
i:=i+2;
end;
 
在Delphi中
For语句适用于循环次数确定的情况,在循环过程中是不能改变的。
 
如果要在循环中改变变量值就只能用While了,for语句中的变量不能更改
 
下面这样可以改,显示 为 2 4 6 8 10
var
i:integer;
begin
for i:=1 to 10do
begin
PInteger(@i)^:=i+1;
ShowMessage(IntToStr(i));
end;
end;

另外,重要的是
改了循环变量一定要小心,假如上面的例子改动一下:
for i:=1 to 11do
//其他地方不改动,就会变成死循环。
因为他一定要当 i 等于 11 时才停止,即使当 i 大于 11 也不停止
而上面例子 i 是 2 4 6 8 怎么也不会等于 11 ,所以不会停
 
用判断语句很容易实现,何必非得改For语句呢?!
while i<=ndo
{
inc(i*i);
}
等等。
 
而且
n:=1;
for i:=1 to ndo

n:=n+1;
结果n:=2;不会无穷执行下去。
 
to dedman:
你仔细看一看,我们说的不是一个东西
i:=a to b
你说的是a b部分
我说的是i部分
 
我知道,所以我用了'而且'只作补充而已:-)
 
你是不是想给循环变量赋值为循环终值来结束循环??
用break试吧!
 
谢谢各位!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部