[已解决]递归问题,递归之后设置@error的值总是零
本帖最后由 AUFS 于 2011-8-31 03:38 编辑请问这样的情况怎么解决...我想要的时候达到15之后就只返回15 而不是再往下跳_Aus()
ConsoleWrite('!~:' & @error & @CRLF)
Func _Aus()
Assign('123',Eval('123')+1,2)
If Eval('123') = 15 Then
;~ ConsoleWrite('!~值:' & Eval('123') & @CRLF)
Return SetError(15,1,1)
EndIf
_Aus()
EndFunc 感觉逻辑有点问题,就是Return语句是否可以放在函数结尾。可以改成以下代码试试看:
Func _Aus()
Assign('123',Eval('123')+1,2)
If Eval('123') = 15 Then
;~ ConsoleWrite('!~值:' & Eval('123') & @CRLF)
Return SetError(15,1,1)
else
Return _Aus()
EndIf
EndFunc 回复 1# AUFS
'往下跳'是什么意思 回复AUFS
'往下跳'是什么意思
netegg 发表于 2011-8-23 15:19 http://www.autoitx.com/images/common/back.gif
呵呵...表达问题... 我的意思是在到条件了直接返回 Return 回复 2# wangsheng108
测试返回的值都是0 而不是达到条件后的15 本帖最后由 netegg 于 2011-8-23 20:33 编辑
回复 5# AUFS
测试了一下,不是返回值有问题,好象是中断的事,加一行#AutoIt3Wrapper_Run_Debug_Mode=y
返回正确,不加的话不返回 回复AUFS
测试了一下,不是返回值有问题,好象是中断的事,加一行#AutoIt3Wrapper_Run_Debug_Mode=y
返回 ...
netegg 发表于 2011-8-23 17:21 http://www.autoitx.com/images/common/back.gif
加这个这样控制台输出太频繁....达不到效果...最终是输出了正确的值...但这不怎么合意啊...有没有更好的解决办法? 请问这样的情况怎么解决...我想要的时候达到15之后就只返回15 而不是再往下跳
AUFS 发表于 2011-8-23 04:52 http://www.autoitx.com/images/common/back.gif
不知道这个递归的中断应该怎么完美解决....先结贴吧..没找到满意的答案...望高手来解决
页:
[1]