在我們重復做一些事情的時候岭辣,就需要使用循環(huán)了。而 AHK 正是能將復雜的手動工作自動化的工具引颈,循環(huán)自然必不可少。但 AHK 中的循環(huán)也是多種多樣的境蜕,我們慢慢道來蝙场。
最簡單的循環(huán)
最簡單的情況,我們知道要循環(huán)多少次粱年,比如想連續(xù)按下 10 次回車鍵:
Loop, 10
{
Send, {Enter}
}
這樣就可以了售滤。在 Loop 后加上要循環(huán)的次數(shù),然后大括號里邊就是要循環(huán)執(zhí)行的語句台诗。當然我們可以先把循環(huán)的次數(shù)放進一個變量完箩,這樣更靈活些:
count := 10
Loop, %count%
{
Send, {Enter}
}
可以在循環(huán)體中使用 A_Index 來獲取當前循環(huán)的次數(shù)。
或者有可能我們想一直循環(huán)執(zhí)行:
Loop
{
Send, {Enter}
Sleep, 1000
}
這個就是死循環(huán)了拉队,如果腳本不退出就會一直執(zhí)行弊知,某些情況我們確實需要這樣。但更多情況粱快,我們需要在滿足某個條件時結束循環(huán):
; 這個 stop 變量會在代碼的其他地方修改秩彤,比如在某個定時器里
stop := false
Loop
{
Send, {Enter}
Sleep, 1000
if (stop)
{
break
}
}
break 是用來退出循環(huán)的,continue 是用來結束當前循環(huán)事哭,進入下一次循環(huán)的漫雷。這和其他語言都一致。
Loop Until 循環(huán)
上邊的最后一種用法鳍咱,即滿足某個條件時結束循環(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++
}
是等同的干旧,使用哪個就看自己的習慣了渠欺。
更多內(nèi)容
有些時候我們需要循環(huán)讀取數(shù)組、讀取字符串中的子字符串椎眯、讀取文件內(nèi)容挠将、遍歷目錄下的文件甚至遍歷注冊表等胳岂,AHK 中都有很方便的用法,而無需讓我們在 Loop 里寫復雜的邏輯舔稀,我們會在之后的文章中了解到乳丰。
付費解決 Windows、Linux内贮、Shell产园、C、C++夜郁、AHK什燕、Python、JavaScript竞端、Lua 等領域相關問題屎即,靈活定價,歡迎咨詢事富,微信 ly50247技俐。