在我们重复做一些事情的时候,就需要使用循环了。而 AHK 正是能将复杂的手动工作自动化的工具,循环自然必不可少。但 AHK 中的循环也是多种多样的,我们慢慢道来。

最简单的循环

最简单的情况,我们知道要循环多少次,比如想连续按下 10 次回车键:

Loop, 10
{Send, {Enter}
}

这样就可以了。在 Loop 后加上要循环的次数,然后大括号里边就是要循环执行的语句。当然我们可以先把循环的次数放进一个变量,这样更灵活些:

count := 10Loop, %count%
{Send, {Enter}
}

可以在循环体中使用 A_Index 来获取当前循环的次数。

或者有可能我们想一直循环执行:

Loop
{Send, {Enter}Sleep, 1000
}

这个就是死循环了,如果脚本不退出就会一直执行,某些情况我们确实需要这样。但更多情况,我们需要在满足某个条件时结束循环:

; 这个 stop 变量会在代码的其他地方修改,比如在某个定时器里
stop := falseLoop
{Send, {Enter}Sleep, 1000if (stop){break}
}

break 是用来退出循环的,continue 是用来结束当前循环,进入下一次循环的。这和其他语言都一致。

Loop Until 循环

上边的最后一种用法,即满足某个条件时结束循环,也可以用 Until 来实现:

stop := falseLoop
{Send, {Enter}Sleep, 1000
}
Until stop

看起来比刚才的要简洁一些。

While 循环

有些时候我们需要先判断条件,然后再决定是否要循环,这样虽然用 Loop 也能实现,但有些别扭,这时就可以用 While 循环了。

count := 0while (count < 10)
{Send, {Enter}Sleep, 1000count++
}

count := 0Loop
{if (count >= 10){break}Send, {Enter}Sleep, 1000count++
}

是等同的,使用哪个就看自己的习惯了。

更多内容

有些时候我们需要循环读取数组、读取字符串中的子字符串、读取文件内容、遍历目录下的文件甚至遍历注册表等,AHK 中都有很方便的用法,而无需让我们在 Loop 里写复杂的逻辑,我们会在之后的文章中了解到。

付费解决 Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua 等领域相关问题,灵活定价,欢迎咨询,微信 ly50247。

AHK 中循环的基本用法相关推荐

  1. python中循环语句的用法,python几种循环方式

    python中while循环的用法是什么? python while循环语句:while 判断条件(condition):执行语句(statements)--执行语句可以是单个语句或语句块. 判断条件 ...

  2. Shell脚本中循环select命令用法笔记

    在Shell脚本中,select命令是一种菜单扩展的循环方式. 语法结构如下: select Menu in (list) do command done 说明:当程序运行到select语句时,会自动 ...

  3. Shell脚本中循环until命令用法笔记

    在shell脚本中,可以使用until执行循环处理,如果使用until命令的话如果表达式的结果为false时才执行循环体,直到测试表达式的值为true的时候才会 停止循环. 语法结果如下: until ...

  4. ahk编程_AHK 中 = 和 := 赋值运算符的用法

    在接触一门新的编程语言后,了解如何对变量赋值几乎是第一步.有了变量,才可以对变量进行数学运算或者逻辑判断,将调用函数得到的结果存入变量也需要赋值操作.可见赋值运算符的重要性. 但很多 AHK 初学者( ...

  5. python和R数据类型查看、赋值、列表、for循环、函数用法对比示例

    python和R数据类型查看.赋值.列表.for循环.函数用法对比示例 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计 ...

  6. matlab中fdyn,Matlab的用法总结

    1. 对序列进行洗牌 randperm() randperm()产生随机的序列 %if filepaths 是一个5*1的结构体,then cshuffle = randperm(length(fil ...

  7. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  8. html dom createevent,js 中 document.createEvent的用法

    js 中 document.createEvent的用法 更新时间:2010年08月29日 23:22:02   作者: 用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象. ...

  9. C#中timer类的用法

    C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类 ...

最新文章

  1. mysql查询转json数据库_数据库大师成长日记:将数据库SQL查询结果直接转为JSON...
  2. selenium+python headless 爬虫环境配置
  3. 7步搞定Python数据可视化,业界大牛出品教程,Jupyter、Colab都有在线版
  4. 微信小程序-豆瓣电影TOP250
  5. Java中switch语句支持的类型
  6. sap 提取字符串中汉字
  7. 算法导论学习笔记 第2章 算法基础
  8. 使用putty连接linux
  9. CF461D-Appleman and Complicated Task【并查集】
  10. mysql权限层级体系_MySQL权限体系介绍
  11. 【OSChina-MoPaaS应用开发大赛】豪美创新后台业务管理系统
  12. java put set_Java PutItemRequest.setItem方法代码示例
  13. [python] 函数小结
  14. 反思,今天总体感觉事情很简单,但项目比较多,没有掌握住很好的技巧,所以感觉很混乱
  15. python 两个变量同时循环_python基础篇(子非鱼)
  16. (转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
  17. 2022年最新四川建筑八大员(劳务员)模拟题库及答案
  18. 虚拟机服务器开放全部端口,查看虚拟机开放端口号
  19. 简单的sql注入之2WP
  20. 网工解惑?什么是路由器、交换机与防火墙,他们的区别与联系是什么?

热门文章

  1. JBOSS+EJB3之Entity 开发实例
  2. 区块链的爆炸式增长使其成为第二大热门需求技能
  3. Python写各大聊天系统的屏蔽脏话功能原理
  4. 【预告】腾讯移动分析 MTA 即刻登陆 2017 GMTC 全球移动技术大会
  5. 一对一培训之视频免费分享-2018-01-21-第 03 阶段-准备-基础-架构-01
  6. C++关键字Volatile的作用
  7. MongoDB实现ID自增长
  8. 浅入浅出 Android 安全:第三章 Android 本地用户空间层安全
  9. 每日英语:Losing It at the Movies: Silly Beats Sober in China's Box Office
  10. 为清理助手制作便利工具的技术实现