superpangya 发表于 2010-8-6 08:09:01

if ...then 语句,这个问题出在哪里?

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

superpangya 发表于 2010-8-6 10:25:31

非常感谢,已经成功了~~~另外想问一下,做同样的循环效果,还有更简洁的办法吗?(写的时候脑子晕乎乎的,所以觉得不是很好)

xyold1 发表于 2010-8-6 11:32:03

$x=70
If $y = 230 Then $y = 212
这两行没必要
删除比较美观{:face (411):}

tryhi 发表于 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

3mile 发表于 2010-8-6 23:27:01

本帖最后由 3mile 于 2010-8-6 23:28 编辑

回复 5# tryhi
水木兄一语中的,佩服。

wanhua8u8 发表于 2010-8-7 01:23:37

凡是遇到if...then 换了行,就得加endif。不换行可以不加endif

zzz867 发表于 2010-8-23 14:59:47

if后面如果只有一行语句应该是没问题的,但如果超过就必须要分行加endif
页: [1]
查看完整版本: if ...then 语句,这个问题出在哪里?