找回密码
 加入
搜索
楼主: 藤真

[AU3基础] 求助,这个条件选择结构为什么只运行两次就自动退出了?

 火.. [复制链接]
发表于 2012-5-4 16:07:13 | 显示全部楼层
本帖最后由 shqf 于 2012-5-4 16:17 编辑

select只执行第一个条件成立的case语句啊,而不管下面是否还有成立的case语句,select语句就执行结束了.
如果说这相比于if 是一个缺陷的话,那么在已执行case的语句后加了continuecase,相当于克服了这个缺陷,会继续执行下面的case语句(继续下一个case循环,注意一旦又有一个case条件成立,则同样会在执行此case后结束select语句,除非又碰到了continuecase),而不结束select语句。帮助中select的功能写得很清楚,它说“终止Select或者Switch块中的当前case循环,并继续下一个case循环”。注意对后一个“循环”的理解,不是指从头开始循环,而是从这个case开始重新执行select语句。
发表于 2012-5-4 16:10:34 | 显示全部楼层
本帖最后由 netegg 于 2012-5-4 19:16 编辑

貌似只能拆成三个判断,还不如直接用if呢

问了问官网,大概意思好像是continuecase并不是继续条件选择,只是执行下一个case,但不会继续执行条件
ContinueCase executes the next case, it does not continue the switch/select or run any conditionals. If you want all cases to run use three separate If's or something to that effect.
发表于 2012-5-4 20:09:13 | 显示全部楼层
回复 15# user3000


    你说得没错,所有判断都取决于第一个为真的判断,学习了,顺便上下帮助文档对select的解释
如果表达式(第一个)为真则执行从下一行开始一直到下一个 Case 或 EndSelect 为止的所有语句.如果有多个Case表达式都成立则只执行第一个Case语句.
如果有多个Case表达式都成立则只执行第一个Case语句.
如果是这样,你第三个例子$aa = 220的语句是不是应该不执行?
这个问题很纠结
发表于 2012-5-4 21:37:23 | 显示全部楼层
因为有continuecase
发表于 2012-5-5 08:08:50 | 显示全部楼层
回复 18# 502762378

17 楼, 蛋大已经给出了来自官网的解答.
其实你如果运行了我在15楼的代码, 自己就会对这问题有深刻的体会了.
我重新编辑了我在15楼的发言, 让大家从字面上更容易理解 ContinueCase 的作用:
"当出现 CASE 真判断, 其跟有 ContinueCase 的, 下一条的 Case 语句 无论真假 肯定, 必定, 绝对会 执行!
如果接着还有 ContinueCase 关键词, 则下下条Case 语句 无论真假也是 肯定, 必定, 绝对会 执行! 一路执行下去, 直到遇到没有 ContinueCase 的 Case 行为止!"
发表于 2012-5-6 01:55:28 | 显示全部楼层
本帖最后由 Qokelate 于 2012-5-6 02:01 编辑

回复 10# netegg


    实践见真知,这种小问题何必上之官网

ContinueCase是立即执行下一个Case



Local $a = 1
Select
 Case $a = 1
  ContinueCase ;==> 跳转
  MsgBox(0,0,1) ;这个永远不会执行,因为在ContinueCase时已经跳转了
 Case $a = 2 ;<== 不管条件如何,如果Case $a=1 成立,那这个肯定也被执行
  MsgBox(0, 0, 2)
 Case $a > 0
  MsgBox(0, 0, 0)
EndSelect

评分

参与人数 1金钱 +10 收起 理由
haijie1223 + 10 赞同

查看全部评分

发表于 2012-5-10 21:16:49 | 显示全部楼层
Good~ Good
 楼主| 发表于 2012-5-19 10:49:30 | 显示全部楼层
谢谢各位的回复,学习了。。。
发表于 2012-5-19 21:25:47 | 显示全部楼层
回复 21# Qokelate


    我这里使用了你两个楼层的代码, 都出来了错误,就是 ContinueCase 出现的错误。
我的版本是3.3.7.2
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 16:49 , Processed in 0.075804 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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