找回密码
 加入
搜索
查看: 2782|回复: 6

[AU3基础] 在自定义函数中用ContinueLoop为什么会出错?[已解决]

  [复制链接]
发表于 2012-6-17 17:36:58 | 显示全部楼层 |阅读模式
本帖最后由 蓝袍道士 于 2012-6-18 06:36 编辑
Dim $png
For $i = 1 To 12
        MsgBox(0, $i, $png)
;~         For $png = 1 To 12
;~         If $png = 3 Then ContinueLoop 2
;~         Next
        ;放在这里跳转就可以
        xh();循环跳试验
        
Next

Func xh();循环跳试验
        For $png = 1 To 12
        If $png = 3 Then ContinueLoop 2;这里执行就出错
        Next
EndFunc   ;==>xh
这样做行不通的话,求其他方法实现这种目的。
发表于 2012-6-17 18:12:25 | 显示全部楼层
蓝袍道士 发表于 2012-6-17 17:36



    先比较深入点了解什么是‘作用域’吧

不过这点au3为了降低学习难度,把很多的概念都不提也不说,但其实au3也是用上的
发表于 2012-6-17 18:34:03 | 显示全部楼层
xh() 函数内部只有1层循环,何来 ContinueLoop 2 ?
发表于 2012-6-17 19:10:02 | 显示全部楼层
1来:就一层循环为什么要continueloop 2
2来:循环里面的那个if语句就是多余的
 楼主| 发表于 2012-6-17 21:17:12 | 显示全部楼层
各位高手啊,……我不得不解释一下啦。这个问题是从实际问题概括出来的简单表达。
由于后面还有许多代码,所以有必要在某种情况下从头循环一次。
按我的简单化理解,自定义函数 就相当于把那一段代码插在那里。我的困惑是,直接插在那里没问题,经自定义函数之后就不行了。

主要目的是要搞清楚原因所在,然后,得到这解决这问题的方法。
我想在xh() 函数执行时,直接跳到第2个循环去能行么?
发表于 2012-6-17 21:35:21 | 显示全部楼层
回复 5# 蓝袍道士
Dim $png

For $i = 1 To 12
        MsgBox(0, $i, $png)
        If xh() Then ContinueLoop ;通过函数返回值来判断是否继续
        MsgBox(48, '注意', '此框弹出则说明 ContinueLoop 未执行')
Next

Func xh()
        For $i = 1 To 12
                $png = $i
                If $i = 3 Then Return 1
        Next
        Return 0
EndFunc   ;==>xh
 楼主| 发表于 2012-6-18 06:34:58 | 显示全部楼层
谢谢阿福版主指点,这样的代码能如我所愿。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 07:31 , Processed in 0.080380 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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