![](/img/trans.png)
[英]AutoHotKey - repeating if statement keeps treating its condition as true in a loop
[英]autohotkey loop with if statement inside
我試圖在 ahk 的循環中獲取一個 if 語句,以便僅在計數器變量值大於或等於 X(本例中使用 10)后運行一些代碼,如果滿足條件,它會發送一些單詞到文本輸入,然后再次將計數器變量重置為 0。 所以我正在使用 IfGreaterOrEqual 但它只是繞過了它。
它不起作用,它一直在無所事事。 有人可以闡明我做錯了什么嗎?
F3::
Toggle := !Toggle
if(Toggle){
gosub Loop1
gosub Loop2
}
SetTimer, Loop1, % (Toggle) ? 19550 : "Off"
SetTimer, Loop2, % (Toggle) ? 306500 : "Off"
return
F4::Reload
Loop1:
vCOUNT++
SendInput word-1{Enter}
IfGreaterOrEqual, vCOUNT, 10
SendInput word-2{Enter}
SendInput word-3{Enter}
vCOUNT :=0
SendInput Counter was reset, its value is now: %vCOUNT% {Enter}
return
Loop2:
SendInput word-4{Enter}
SendInput word-5{Enter}
SendInput word-6{Enter}
SendInput word-7{Enter}
return
我不知道我是否解決了你的問題,但我認為你的問題是在 Loop1 中,條件被忽略,甚至在第一次迭代中它也會將 vCOUNT 設置回零。
所以這個問題是你可以看到它以某種方式沒有忽略“IfGreaterOrEqual”,因為“SendInput word-2 {Enter}”沒有被執行。 所以該語句只影響下一行,但您希望它影響整個塊。 要解決這個問題,您必須在您想要的代碼塊周圍加上括號。 在您的“Loop1”示例中(如果我的想法正確),它應該是這樣的:
Loop1: vCOUNT++ SendInput word-1{Enter} IfGreaterOrEqual, vCOUNT, 10 { SendInput word-2{Enter} SendInput word-3{Enter} vCOUNT:=0 SendInput Counter was reset, its value is now: %vCOUNT% {Enter} } return
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.