procedure TForm1.Button1Click(Sender: TObject);var
i,j:Integer;
begin
j:=-99;
i:=0;
for i:=0 to j do
begin end; showmessage(inttostr(i)); //结束的时候 i 为什么不是 0 ?end;
i,j:Integer;
begin
j:=-99;
i:=0;
for i:=0 to j do
begin end; showmessage(inttostr(i)); //结束的时候 i 为什么不是 0 ?end;
解决方案 »
- delphi iocp component问题,关键词:delphi iocp 内存溢出
- Delphi将数据逆向输出?
- 关于IntraWeb的讨论
- 谁有《Delphi COM深入编程》电子版,告诉我.
- 散分!兄弟們進來祝福我的朋友---星星
- 问一个sql语句的写法
- 如何在ShellListView用onchang事件?像FileListBox那样
- 如何将DBgrid里的数字,在显示时转化为相应的汉字
- 一个日渐困惑的问题!
- 在窗体上放一个TImage,如何使TEdit能显示Image的图像(即透明)?
- adoconnection.execute('exec cunchuguocheng');有没有 在delphi 里执行后不要等待 它的返回;?
- 闲置书籍占地方,无用处理掉,有需要的来看看!
所以
i:=0
这一句代码被DELPHI优化了
你可以按F7单步执行,
i:=0这一行根本就没有执行
用作for循环的变量在for结束后
他的值可能是不确定的
这样的话 最好选用while 或者repeat
i:=0 应该要执行的吧?
建议你这样写:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,n:Integer;
begin
j:=-99;
n:=0;
for i:=0 to j do
begin
n:= i;
end; showmessage(inttostr(n));
end;
i := 0; //不执行, 由于后面i在循环中被赋值 for i := 0 to j do //执行, 1> 先做 0 与 j 比较, 判断无需做循环, i不赋值
begin end; showmessage(inttostr(i));
for i := 0 to jdo
begin
...
end;觉得应该为
for i := 0 downto j do
begin
...
end; showmessage(inttostr(i)); 输出为:
-99不知道这样可否