在自定义函数中用ContinueLoop为什么会出错?[已解决]
本帖最后由 蓝袍道士 于 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 17:36 http://www.autoitx.com/images/common/back.gif
先比较深入点了解什么是‘作用域’吧
不过这点au3为了降低学习难度,把很多的概念都不提也不说,但其实au3也是用上的 xh() 函数内部只有1层循环,何来 ContinueLoop 2 ? 1来:就一层循环为什么要continueloop 2
2来:循环里面的那个if语句就是多余的 各位高手啊,……我不得不解释一下啦。这个问题是从实际问题概括出来的简单表达。
由于后面还有许多代码,所以有必要在某种情况下从头循环一次。
按我的简单化理解,自定义函数 就相当于把那一段代码插在那里。我的困惑是,直接插在那里没问题,经自定义函数之后就不行了。
主要目的是要搞清楚原因所在,然后,得到这解决这问题的方法。
我想在xh() 函数执行时,直接跳到第2个循环去能行么? 回复 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 谢谢阿福版主指点,这样的代码能如我所愿。
页:
[1]