找回密码
 加入
搜索
查看: 3391|回复: 7

[AU3基础] if ...then 语句,这个问题出在哪里?

  [复制链接]
发表于 2010-8-6 08:09:01 | 显示全部楼层 |阅读模式
If $color = 0 Then Beep(500, 100) Sleep(15000)


调试的时候出错,说是后面的sleep问题,我搞不明白。原来是想在条件满足的时候报警并延迟,这个操作应该怎么做啊?


比较全的代码:


Func _lala()
        While 1
         
            For $y = 212 To 230 Step 18
         
                 For $x = 70 To 576 Step 72
                         MouseMove($x,$y)
                         $color=PixelGetColor($x,$y)
                         If $color = 0 Then Beep(500, 100)
                         ;Sleep(15000)
                 Next
                 $x=70
                Next
                 
               
                 If $y = 230 Then $y = 212
         WEnd

EndFunc


做这个循环有更简单的办法吗?
发表于 2010-8-6 09:03:13 | 显示全部楼层
本帖最后由 水木子 于 2010-8-6 09:07 编辑
$a = 1
If $a = 1 Then
        MsgBox(0, '', '')
        Sleep(1000)
        MsgBox(0, '', '')
EndIf        
所以你的代码应该是这样
Func _lala()
        While 1
                For $y = 212 To 230 Step 18
                        For $x = 70 To 576 Step 72
                                MouseMove($x, $y)
                                $color = PixelGetColor($x, $y)
                                If $color = 0 Then
                                        Beep(500, 100)
                                        Sleep(15000)
                                EndIf  ;这是 If 的结束
                        Next
                        $x = 70
                Next
                If $y = 230 Then $y = 212
        WEnd
EndFunc   ;==>_lala

评分

参与人数 2金钱 +30 贡献 +1 收起 理由
tryhi + 10 + 1
afan + 20

查看全部评分

 楼主| 发表于 2010-8-6 10:25:31 | 显示全部楼层
非常感谢,已经成功了~~~  另外想问一下,做同样的循环效果,还有更简洁的办法吗?  (写的时候脑子晕乎乎的,所以觉得不是很好)
发表于 2010-8-6 11:32:03 | 显示全部楼层
$x=70
If $y = 230 Then $y = 212
这两行没必要
删除比较美观
发表于 2010-8-6 19:34:55 | 显示全部楼层
Func _lala()
        While 1
                For $y = 212 To 230 Step 18
                        For $x = 70 To 576 Step 72
                                MouseMove($x, $y)
                                $color = PixelGetColor($x, $y)
                                If $color = 0 Then
                                        Beep(500, 100)
                                        Sleep(15000)
                                EndIf  ;这是 If 的结束
                        Next
                Next
        WEnd
EndFunc   ;==>_lala

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-8-6 23:27:01 | 显示全部楼层
本帖最后由 3mile 于 2010-8-6 23:28 编辑

回复 5# tryhi
水木兄一语中的,佩服。
发表于 2010-8-7 01:23:37 | 显示全部楼层
凡是遇到if...then 换了行,就得加endif。不换行可以不加endif
发表于 2010-8-23 14:59:47 | 显示全部楼层
if后面如果只有一行语句应该是没问题的,但如果超过就必须要分行加endif
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 18:57 , Processed in 0.090497 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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