cashiba 发表于 2018-3-5 17:49:10

函数嵌套出现的问题[已解决]

本帖最后由 cashiba 于 2018-3-5 21:11 编辑

Local $x=Int(StringStripWS(InputBox("请输入序号","",12), 7))
If @error Or $x="" Then Exit MsgBox(4096,"","请重新输入序号!")
输入其它整数没什么问题,输入0 的时候会退出....
问题在哪个环节呢
{:face (189):}

afan 发表于 2018-3-5 18:59:13

0 使 $x = "" 成立,自然就 Exit

haijie1223 发表于 2018-3-5 19:30:35

用==代替=,能满足你想要的效果。

afan 发表于 2018-3-5 19:57:21

本帖最后由 afan 于 2018-3-5 20:00 编辑

用==代替=,能满足你想要的效果。
haijie1223 发表于 2018-3-5 19:30 http://www.autoit3.cn/images/common/back.gif


    恐怕不是他想要的效果,比如输入几个空格…
建议这类代码少用嵌套,分步判断使代码更健壮

haijie1223 发表于 2018-3-5 20:44:32

回复 4# afan


    他用了一个StringStripWS命令

cashiba 发表于 2018-3-5 21:05:59

0 使 $x = "" 成立,自然就 Exit
afan 发表于 2018-3-5 18:59 http://www.autoit3.cn/images/common/back.gif
谢谢A大....
Local $ipt = StringStripWS(InputBox("请输入序号", "^_^", 6), 7)
If @error Or $ipt = "" Then Exit MsgBox(4096, $ipt, "请重新输入序号!")
Local $t = Int($ipt)
这样就没问题了

cashiba 发表于 2018-3-5 21:07:59

用==代替=,能满足你想要的效果。
haijie1223 发表于 2018-3-5 19:30 http://www.autoit3.cn/images/common/back.gif
谢谢海总管.....
还没想到过用==,这下记住这个符号了
{:face (84):}

cashiba 发表于 2018-3-5 21:09:55

再次感谢两位大神的指导!
{:face (88):}

afan 发表于 2018-3-5 21:49:51

回复afan


    他用了一个StringStripWS命令
haijie1223 发表于 2018-3-5 20:44 http://www.autoit3.cn/images/common/back.gif


    正因为他用了 StringStripWS,才确定他需要排除空格。在输入空格时,应该弹出 MsgBox 提示重输

afan 发表于 2018-3-5 22:00:26

谢谢A大....

这样就没问题了
cashiba 发表于 2018-3-5 21:05 http://www.autoit3.cn/images/common/back.gif


    这样嵌套还是有无意义的代码,If @Error 永远不会成立。其次,有些细节可以处理,简例:
Local $x = InputBox("请输入序号", "", 12, " m")        ;必须输入内容,否则不能点确定
If @error Then Exit        ;取消则不处理
$x = StringStripWS($x, 7)
If $x = "" Then Exit MsgBox(4096, "", "请重新输入序号!")
$x = Int($x)

haijie1223 发表于 2018-3-6 08:19:52

回复 9# afan


    对,他外边还有个int。

kk_lee69 发表于 2018-3-6 09:05:21

回复 11# haijie1223


    If $x = "" Then Exit MsgBox(4096, "", "请重新输入序号!")

這行我看不懂意思 ??

EXIT 後面的 MSGBOX 會執行嗎??為什麼要這樣寫呢??

heroxianf 发表于 2018-3-6 09:06:09

字符+1也是整型!!!

haijie1223 发表于 2018-3-6 19:48:51

回复 12# kk_lee69


    能执行

cashiba 发表于 2018-3-6 23:09:15

这样嵌套还是有无意义的代码,If @Error 永远不会成立。其次,有些细节可以处理,简例:
afan 发表于 2018-3-5 22:00 http://www.autoit3.cn/images/common/back.gif
嗯,好像是的,有些废代码
每个函数都有@error情况,嵌套后只能判断和处理最外层的@error,无法精确和细化....
页: [1] 2
查看完整版本: 函数嵌套出现的问题[已解决]