找回密码
 加入
搜索
查看: 2281|回复: 12

[AU3基础] [已解决]今天忽然发现一段有意思的代码,不知是否是autoit的BUG,大家看看

  [复制链接]
发表于 2016-3-21 23:10:41 | 显示全部楼层 |阅读模式
本帖最后由 cihron 于 2016-3-24 18:58 编辑

今天忽然发现一段有意思的代码,不是是否是autoit的BUG。

发来大家看看,不妨先猜想下结果。。。
$n = 10

For $i = 0 To $n 
        ConsoleWrite( $i & @CRLF )
        $n -= 1
Next
发表于 2016-3-22 07:33:11 | 显示全部楼层
循环有啥BUG啊,这个代码输出11行,0-10。难道不是这样?
发表于 2016-3-22 09:01:10 | 显示全部楼层
楼主是想让$n在每次循环的时候值都为最新么?那应该用do、while循环吧。
发表于 2016-3-22 09:40:15 | 显示全部楼层
一旦进入循环体,循环初值、终值、步长都已经确定了,是确切的值,不可更改
发表于 2016-3-22 11:52:35 | 显示全部楼层
综合楼上各位大侠的见解
 楼主| 发表于 2016-3-22 16:13:26 | 显示全部楼层
回复 2# haijie1223


    我试图在循环里改变循环变量的值, 而提前中止循环。
 楼主| 发表于 2016-3-22 16:15:54 | 显示全部楼层
回复 4# zldfsz


    头回发现,也不太明白,为什么要设计成这样的?

 还有哪些语言使用这样的设计?
发表于 2016-3-22 16:21:16 | 显示全部楼层
回复 6# cihron


    那就问怎么终止循环,BUG啥啊?
$n = 10
For $i = 0 To $n 
        ConsoleWrite( $i & @CRLF )
        $n -= 1
                If $n=5 Then ExitLoop
Next
 楼主| 发表于 2016-3-22 16:22:21 | 显示全部楼层
回复 5# afan


    调试了老半天才发现这个问题,汗~

    貌似autoit近些年一直没有再更新,班竹有啥消息透露没?

    挺好用的一个工具,代码多了有点费劲,要是能支持面向对象和异常处理就完美了问题。
 楼主| 发表于 2016-3-22 16:23:32 | 显示全部楼层
写在这里给大家做个参考吧,肯定有人和我一样,没注意过这个问题。
发表于 2016-3-22 20:42:24 | 显示全部楼层
这标题和内容表达太准确了!!!!!
发表于 2016-3-24 15:42:28 | 显示全部楼层
值在循环体里执行,这有什么不对吗
发表于 2016-3-26 07:39:04 | 显示全部楼层
for循环内改变循环上限,这种算法本身就有极大的BUG!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 09:45 , Processed in 0.078617 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表