社区
非技术区
帖子详情
呵呵,意外发现这样的代码也能正确运行。
eastliangliang
2005-03-04 11:36:22
Delphi还真贴心啊,哈哈。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i := 4;
for i := 0 to i - 1 do
showmessage(inttostr(i));
end;
...全文
419
37
打赏
收藏
呵呵,意外发现这样的代码也能正确运行。
Delphi还真贴心啊,哈哈。 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin i := 4; for i := 0 to i - 1 do showmessage(inttostr(i)); end;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lw549
2005-03-07
打赏
举报
回复
回来晚了,循环中不用i,可以单步跟踪一下,发现i是从大到小执行的,和for的写法没有关系,原理上面已经说了。
>>for循环是事先确定循环次数的,你可以在调试的时候打开CPU看汇编,我说过,Delphi先把循环次数算出来放在寄存器ESI中,以后每次减1,不会再重新计算循环次数啦。
Sunniness
2005-03-05
打赏
举报
回复
呵呵,晕倒
caiso
2005-03-05
打赏
举报
回复
顶一下
eastliangliang
2005-03-05
打赏
举报
回复
for循环是事先确定循环次数的,你可以在调试的时候打开CPU看汇编,我说过,Delphi先把循环次数算出来放在寄存器ESI中,以后每次减1,不会再重新计算循环次数啦。
C语言是每次都计算循环条件的,不过它的for循环功能强大,这样做也是为了能实现其它循环的功能。
谁把C语言的for循环的反汇编代码贴出来,我机器上只有老式TC,还不太会使^_^
merkey2002
2005-03-05
打赏
举报
回复
Delphi还真贴心啊,哈哈。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i := 4;
for i := 0 to i - 1 do //这里的i-1 运算先于i:=0,而且for 循环事先确定循环次数,
//不像 while <条件> do 那样每次循环前要进行重新判断.因此这里i-1只执行了一次.
showmessage(inttostr(i));
end;
我分析的对不?
Breakc0de
2005-03-05
打赏
举报
回复
呵,也是啊。
才子鸣
2005-03-05
打赏
举报
回复
up
lushiyu0
2005-03-05
打赏
举报
回复
回复人: eastliangliang(青苹果) ( ) 信誉:137 2005-03-04 14:27:00 得分: 0
呵呵,C语言里可不是这样的。
i=4;
for(i=0;i<i-1;i++)//--------------老大,这行和上一行i=4 之间是不是有什么冲突?当染不能执行了!
printf("%d",i);
不执行循环的。
那孩子他爹,不用i有什么有意思的事啊?
for i := 0 to i - 1 do
showmessage('hello world');
打四个hello world,没什么啊。
这不能是bug,只是优化。
cangwu_lee
2005-03-05
打赏
举报
回复
语言的特点
eastliangliang
2005-03-05
打赏
举报
回复
呵呵,楼上想的太多啦,这点小事,不用想那么多大道理哈^_^
firstshine
2005-03-05
打赏
举报
回复
所以,谁都没有资格教训新手:我已经精通XXX......
写程序,就得学到老
lw549
2005-03-04
打赏
举报
回复
呵呵,如果不是ShowMessage用到了i,还有更有意思的事呢:)
试试看
hthunter
2005-03-04
打赏
举报
回复
我只要分……
ly_liuyang
2005-03-04
打赏
举报
回复
本来就是可以的
http://lysoft.7u7.net
DieGhost
2005-03-04
打赏
举报
回复
想想也是,自己原来都是多此一举了
lym_1978
2005-03-04
打赏
举报
回复
呵呵
gxgyj
2005-03-04
打赏
举报
回复
^_^
DieGhost
2005-03-04
打赏
举报
回复
昏倒
eastliangliang
2005-03-04
打赏
举报
回复
Delphi在循环开始把i+1算出来放在ESI中,以后就不用变量i了。我以前都是用两个变量完成这个循环功能,现在看真是多此一举啊。
XXSingle
2005-03-04
打赏
举报
回复
呵呵,平时都没注意喔
加载更多回复(17)
UnityEditor.Graphs.Edge.WakeUp () (at <XXX>:0)
博客讲述了Unity报错情况,
代码
正确
但
运行
时出现NullReferenceException错误,给出了详细的报错信息。经搜索,最终
发现
解决该问题的方法是重启Unity,令人
意外
。
P1308 统计单词数 洛谷
博主记录一道
代码
题,测试用例给出的结果与自己修改后
代码
的
运行
结果不符,觉得
代码
没问题后简单测试
发现
结果
正确
,可仍与测试用例结果不同,提交
代码
后却
意外
通过。
spark-submit local本地
运行
问题
博主在使用spark-submit
运行
本地(local)模式时遇到问题,原本应写入Linux目录的输出结果
意外
写入了HDFS。在其他slave节点上
运行
local模式则正常。问题在于目录指定与实际写入路径不一致,删除HDFS目录后,输出仍不在Linux目录,而是在HDFS。检查
代码
和配置后,
发现
其他slave节点能够
正确
执行并将结果写入Linux目录。
c语言
代码
输出名字字符,计蒜客c语言程序设计:习题---输出最长的名字
本文探讨了一段C语言
代码
中使用未初始化的二维字符数组却
意外
通过所有测试的情况。作者
发现
将数组大小设为101时,即使不进行初始化也能
正确
运行
,引发对其背后原理的好奇。
python之
意外
发现
turtle的强大
本文介绍了Python的turtle库,包括其安装方法,解决了python3安装时setup.py语法不支持的问题。还给出了用turtle库绘制玫瑰花、太阳花和树的有趣示例。此外,补充了导出图片的方法,需安装pillow库和Ghostscript并配置环境变量。
非技术区
830
社区成员
53,569
社区内容
发帖
与我相关
我的任务
非技术区
Delphi 非技术区
复制链接
扫一扫
分享
社区描述
Delphi 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章