[基礎(chǔ)] AHK 中循環(huán)的基本用法

在我們重復(fù)做一些事情的時候,就需要使用循環(huán)了。而 AHK 正是能將復(fù)雜的手動工作自動化的工具,循環(huán)自然必不可少。但 AHK 中的循環(huán)也是多種多樣的,我們慢慢道來。

最簡單的循環(huán)

最簡單的情況,我們知道要循環(huán)多少次,比如想連續(xù)按下 10 次回車鍵:

Loop, 10
{
    Send, {Enter}
}

這樣就可以了。在 Loop 后加上要循環(huán)的次數(shù),然后大括號里邊就是要循環(huán)執(zhí)行的語句。當(dāng)然我們可以先把循環(huán)的次數(shù)放進(jìn)一個變量,這樣更靈活些:

count := 10

Loop, %count%
{
    Send, {Enter}
}

可以在循環(huán)體中使用 A_Index 來獲取當(dāng)前循環(huán)的次數(shù)。

或者有可能我們想一直循環(huán)執(zhí)行:

Loop
{
    Send, {Enter}
    Sleep, 1000
}

這個就是死循環(huán)了,如果腳本不退出就會一直執(zhí)行,某些情況我們確實需要這樣。但更多情況,我們需要在滿足某個條件時結(jié)束循環(huán):

; 這個 stop 變量會在代碼的其他地方修改,比如在某個定時器里
stop := false

Loop
{
    Send, {Enter}
    Sleep, 1000

    if (stop)
    {
        break
    }
}

break 是用來退出循環(huán)的,continue 是用來結(jié)束當(dāng)前循環(huán),進(jìn)入下一次循環(huán)的。這和其他語言都一致。

Loop Until 循環(huán)

上邊的最后一種用法,即滿足某個條件時結(jié)束循環(huán),也可以用 Until 來實現(xiàn):

stop := false

Loop
{
    Send, {Enter}
    Sleep, 1000
}
Until stop

看起來比剛才的要簡潔一些。

While 循環(huán)

有些時候我們需要先判斷條件,然后再決定是否要循環(huán),這樣雖然用 Loop 也能實現(xiàn),但有些別扭,這時就可以用 While 循環(huán)了。

count := 0

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

count := 0

Loop
{
    if (count >= 10)
    {
        break
    }

    Send, {Enter}
    Sleep, 1000
    count++
}

是等同的,使用哪個就看自己的習(xí)慣了。

更多內(nèi)容

有些時候我們需要循環(huán)讀取數(shù)組、讀取字符串中的子字符串、讀取文件內(nèi)容、遍歷目錄下的文件甚至遍歷注冊表等,AHK 中都有很方便的用法,而無需讓我們在 Loop 里寫復(fù)雜的邏輯,我們會在之后的文章中了解到。

付費解決 Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua 等領(lǐng)域相關(guān)問題,靈活定價,歡迎咨詢,微信 ly50247。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。