cashiba 发表于 2017-4-4 20:26:14

AU3中如何实现类似@ERROR....GOTO....的过程?[已解决]

本帖最后由 cashiba 于 2017-4-6 17:01 编辑

Local $sAnswer
ErrRedo:
$sAnswer= InputBox("询问", "请输入编号?", "0000")
if @error or not isint($sAnswer) then goto ErrRedo ;发生错误或输入非整数数字则返回重新输入
MsgBox(0,"",$sAnswer)

如上,在vb等中有GOTO方法或函数,可以很方便的实现有错误自动提示并循环输入
但是AU3中好像没有类似的方法,那么要实现上述过程有什么好办法?

afan 发表于 2017-4-4 20:34:01

本帖最后由 afan 于 2017-4-4 20:50 编辑

函数形式调用,也可以简单的循环Local $sAnswer
Do
        $sAnswer = InputBox("询问", "请输入编号?", "0000")
Until Not @error And StringIsInt($sAnswer)
MsgBox(0,"",$sAnswer)

sdlyfjx 发表于 2017-4-4 20:45:36

递归吗{:face (396):}

cashiba 发表于 2017-4-5 00:05:20

函数形式调用,也可以简单的循环
afan 发表于 2017-4-4 20:34 http://www.autoitx.com/images/common/back.gif
还是A大细心,开始就是这样写的,但是结果总是不太对,以为循环不好用,原来是StringIsInt($sAnswer)与IsInt($sAnswer)的问题

cashiba 发表于 2017-4-5 00:13:22

递归吗
sdlyfjx 发表于 2017-4-4 20:45 http://www.autoitx.com/images/common/back.gif
记得见过函数调用自身的例子,是不是你所说的递归呢?
经A大提示,这个帖子的问题已经解决了。暂时再挂两天,看看有没有递归方法实现的。
另外,还是觉得GOTO有其优点,就是比较灵活,不管在代码的什么地方,可以根据需要随时跳转,跟汇编里jump一样。

jingzhinvr 发表于 2017-4-5 03:46:16

去帮助里找下看

sdlyfjx 发表于 2017-4-5 10:11:22

回复 5# cashiba


    嗯!是的~
页: [1]
查看完整版本: AU3中如何实现类似@ERROR....GOTO....的过程?[已解决]