[已解决]今天忽然发现一段有意思的代码,不知是否是autoit的BUG,大家看看
本帖最后由 cihron 于 2016-3-24 18:58 编辑今天忽然发现一段有意思的代码,不是是否是autoit的BUG。
发来大家看看,不妨先猜想下结果。。。$n = 10
For $i = 0 To $n
ConsoleWrite( $i & @CRLF )
$n -= 1
Next 循环有啥BUG啊,这个代码输出11行,0-10。难道不是这样? 楼主是想让$n在每次循环的时候值都为最新么?那应该用do、while循环吧。 一旦进入循环体,循环初值、终值、步长都已经确定了,是确切的值,不可更改 综合楼上各位大侠的见解 {:face (238):} 回复 2# haijie1223
我试图在循环里改变循环变量的值, 而提前中止循环。 回复 4# zldfsz
头回发现,也不太明白,为什么要设计成这样的?
还有哪些语言使用这样的设计? 回复 6# cihron
那就问怎么终止循环,BUG啥啊?$n = 10
For $i = 0 To $n
ConsoleWrite( $i & @CRLF )
$n -= 1
If $n=5 Then ExitLoop
Next 回复 5# afan
调试了老半天才发现这个问题,汗~
貌似autoit近些年一直没有再更新,班竹有啥消息透露没?
挺好用的一个工具,代码多了有点费劲,要是能支持面向对象和异常处理就完美了问题。 写在这里给大家做个参考吧,肯定有人和我一样,没注意过这个问题。 这标题和内容表达太准确了!!!!! 值在循环体里执行,这有什么不对吗 for循环内改变循环上限,这种算法本身就有极大的BUG!
页:
[1]