[基础] AHK 中循环的基本用法

作者: 陌辞寒 | 来源:发表于2016-05-02 09:28 被阅读1962次

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

    最简单的循环

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

    Loop, 10
    {
        Send, {Enter}
    }
    

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

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

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

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

    Loop
    {
        Send, {Enter}
        Sleep, 1000
    }
    

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

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

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

    Loop Until 循环

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

    stop := false
    
    Loop
    {
        Send, {Enter}
        Sleep, 1000
    }
    Until stop
    

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

    While 循环

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

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

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

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

    更多内容

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

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

    相关文章

      网友评论

      本文标题:[基础] AHK 中循环的基本用法

      本文链接:https://www.haomeiwen.com/subject/iswkrttx.html