delphi7中function里面for循环的变量为什么不会递增?

ddvddt1 2016-04-21 05:06:35
我在delphi7中function里面for循环的变量为什么不会递增?不管for i:=1 to 5,查询变量后永远是i=0,是怎么回事?
function里面不能有循环吗?还是要怎么定义?
...全文
445 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44615388 2019-01-26
  • 打赏
  • 举报
回复
想尝试一下!
ddvddt1 2016-06-03
  • 打赏
  • 举报
回复
结贴,应该是编辑器优化的缘故,由于分不多,请各位见谅并笑纳,谢谢!
jjpweb 2016-05-12
  • 打赏
  • 举报
回复
代码是我写给楼主看的。诸位看清楚啊,那代码不是楼主的源码
chengangcsdn 2016-05-12
  • 打赏
  • 举报
回复
如果i从来没有用过.delphi会会自动优化代码.i的值是不确定的.
oommqq 2016-05-08
  • 打赏
  • 举报
回复
function abc:boolean; var i:integer; begin for i:=0 to 9 do begin showmessage(inttostr(i)); end; result:=true; end; procedure TForm1.Button1Click(Sender: TObject); var a:boolean; begin a:= abc; end; D7 测试一下, 可以正常弹出0 ~9
YmirBoy 2016-04-27
  • 打赏
  • 举报
回复
这个会变的呀,每次弹的对话框文本应该不一样的
hongss 2016-04-23
  • 打赏
  • 举报
回复
是不是定义了一个i为全局变量?冲突了?
yangdongxueC 2016-04-23
  • 打赏
  • 举报
回复
是不是编辑器中设置的问题
  • 打赏
  • 举报
回复
你在哪"查询变量"的?由于编译器优化的缘故,循环变量通常优化为寄存器变量(如果你没有在循环后使用它的话),所以如果你在循环外部查看循环变量是没有意义的。
jjpweb 2016-04-22
  • 打赏
  • 举报
回复

function abc:boolean;
var i:integer;
begin
   for i:=0 to 9 do
begin
  showmessage(inttostr(i));
end;
end;

jjpweb 2016-04-22
  • 打赏
  • 举报
回复

function abc:boolean;
var i:integer;
begin
   for i:=0 to 9 do
begin
  showmessage(inttostr(i));
end;
result:=true;
end;
不让编辑,很不科学啊。
lyhoo163 2016-04-22
  • 打赏
  • 举报
回复
引用 5 楼 jjpweb 的回复:

function abc:boolean;
var i:integer;
begin
   for i:=0 to 9 do
begin
  showmessage(inttostr(i));
end;
result:=true;
end;
不让编辑,很不科学啊。
D7中是可以执行的。不断地显示1 - 9
shadowpj 2016-04-22
  • 打赏
  • 举报
回复
贴代码啊兄弟!
lyhoo163 2016-04-21
  • 打赏
  • 举报
回复
贴出源代码。
yuetianbao 2016-04-21
  • 打赏
  • 举报
回复
注意你这个变量“i”是不是还在其它地方申请的有,很可能作用域的原因,function中可以使用for循环的,而且i肯定会递增的。
zbdzjx 2016-04-21
  • 打赏
  • 举报
回复
是不是for循环中改了i的值??

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧