首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内含if语句的autohotkey循环

内含if语句的autohotkey循环
EN

Stack Overflow用户
提问于 2021-01-14 00:45:45
回答 1查看 107关注 0票数 0

我试图在ahk的循环中获得一个if语句,以便只有在计数器变量的值大于或等于X之后才运行一些代码(本例使用10 ),如果满足条件,它会将一些单词发送到文本输入,然后再次将计数器变量重置为0。所以我使用了IfGreaterOrEqual,但它只是绕过了它。

它不起作用,它一直像什么都没有发生。有人能解释一下我做错了什么吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-14 01:33:04

我不知道我是否正确理解了你的问题,但我认为你的问题是,在Loop1中,条件被忽略了,即使在第一次迭代中,它也会将vCOUNT设置为零。

所以这样做的问题是,你可以看到它并没有忽略"IfGreaterOrEqual“,因为"SendInput word-2{Enter}”没有被执行。因此,该语句只影响下一行,但您希望它影响整个块。为了解决这个问题,你必须用括号括起你想要的码块。在你的"Loop1“示例中(如果我没弄错的话),它应该是这样的:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65706228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档