金猪脚本【第七期】教你 0 基础学写脚本 ——程序结构(第三节)

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

接着上一章。继续循环控制语句。

While循环。

直接看官方例子:

  1. i=0
  2. While i=0
  3. Msgbox "我停不下来啦!!快住手"
  4. Wend
  5. //当循环条件成立的时候,反复执行循环体

复制代码

关于While循环,没有太多讲的。因为do循环,for循环基本能够把While循环的功能实现。大家如果要写,那么按照官方例子的格式写就行了。需要说明的是While的循环条件和for不一样。For的是循环次数,而While的是循环条件。只要While循环条件为真,就会运行。

  1. While True
  2. TracePrint "正在循环,这是循环体。"
  3. Wend

复制代码

比如这个,会一直运行的。

  1. While -1
  2. TracePrint "正在循环,这是循环体。"
  3. Wend

复制代码

这样?其实只要这个式子的值不是0,就会运行。为0则停止。

Do循环。

do while:Do循环有很多种。其中一种是 do while 。其实和上面的一样的效果。意思就是满足条件,则运行循环体。

  1. Do While True
  2. TracePrint "正在循环,这是循环体。"
  3. Loop

复制代码

直接这样套,是没什么问题的,效果也是一样的。不过有个好处,就是可以途中终止。

  1. Do While True
  2. TracePrint "正在循环,这是循环体。"
  3. Exit Do
  4. Loop

复制代码

循环到 Exit Do 的时候退出do循环。实际上这个和Exit for用法是一样的。所以说,do While比While循环有更多的优势。

Do Until:这个跟do while正好相反。这个的意思是条件成立则退出循环。

  1. Do Until True
  2. TracePrint "正在循环,这是循环体。"


  1. Loop

复制代码

这样的话,根本不会执行循环体。

  1. Do Until False
  2. TracePrint "正在循环,这是循环体。"
  3. Exit Do
  4. Loop

复制代码

这样反倒是执行了。当然了,Exit Do 同样有效。

Do …loop while:这个循环,是先循环一次,然后再判断条件结果。结果为真则继续循环。

  1. Do
  2. TracePrint "正在循环,这是循环体。"
  3. Loop While False

复制代码

可以看到,虽然值是假,但是还是执行过一次循环体的。

这个有什么用呢?我们做一个小题目:按键:如果用户按了”A”键,那么提示按键正确,停止脚本。如果其他按键,那么提示按键错误,重新输入。让用户重新按键。

先来分析一下,我们需要用户先按一次键,然后才判断是否按键正确。所以我们这儿的循环体是等待用户按键,并且把这个按键码存在变量里面。

变量名 = WaitKey()

循环体有了,我们该怎么选择循环语句呢?因为是需要先让用户按键一次。所以,应该是用do …loop while。条件是 变量名<>65 ,意思是用户按的按键不是65(A键)。

  1. Dim 变量名
  2. TracePrint “请按键”
  3. Do
  4. 变量名 = WaitKey()
  5. Loop While 变量名 咦,你是不是发现错误的时候的提示找不到地方放啊?放在 变量名 = WaitKey() 前边吧,一开始运行的时候就出来一个错误提示,放在后面吧,按键完,还没开始判断又是一个提示。题目要求的是,判断循环条件的时候,如果正确就提示按键正确停止脚本,如果错误就提示错误重新输入。我们可以写一个函数,如果正确就提示按键正确并且返回值0,如果错误就提示错误,并返回值0。调用这个函数作为条件,我们就实现了在判断的同时,提示用户是否正确输入。
  6. 65
  7. TracePrint "按键正确"

复制代码

do …loop Until。

do …loop Until和do …loop while也是差不多。只不过这儿的条件是成立则跳出循环而已。也就是说,如果用do …loop Until的话,只需要改下条件。

  1. TracePrint "请按键"
  2. Do
  3. 变量名 = WaitKey()
  4. Loop While 判断按键是否正确(变量名)
  5. Function 判断按键是否正确(变量名)
  6. If 变量名 这样而已。
  7. 大家可以试着把上面题目的do …loop while循环改成do …loop Until。
  8. 我们来做一些这样的循环,同样的如循环找色。
  9. 65 Then
  10. TracePrint "按键错误,请重新输入"
  11. 判断按键是否正确=1
  12. Else
  13. TracePrint "按键正确"
  14. 判断按键是否正确=0
  15. End If
  16. End Function


复制代码

看得懂这个代码么?你是不是想问,为什么要搞个函数这么麻烦的事情?直接找色不就完了吗?遇到很多朋友,可以写到上万条代码。实际上,很多代码都重复出现。让脚本可读性非常差。到最后,自己去看都能把自己弄晕。希望看我帖子的同学,可以用这样的方法优化自己的脚本。 这一章就说到这儿,一样的,不懂的地方回复,小妖会解答的。当然了,如果小妖也不懂呢,小妖会找真正的大神。

举报
评论 0