Compiler errors 自动热键抛出错误:意外的“}”&引用;尽管括号似乎是正确的

Compiler errors 自动热键抛出错误:意外的“}”&引用;尽管括号似乎是正确的,compiler-errors,autohotkey,curly-braces,unexpected-token,Compiler Errors,Autohotkey,Curly Braces,Unexpected Token,添加Else语句后,脚本将不会编译do,因为括号不正确。编译器说第67行是罪魁祸首,我不知道为什么 #NoEnv SetWorkingDir %A_ScriptDir% CoordMode, Mouse, Pixel SendMode Input #SingleInstance Force SetControlDelay 1 SetWinDelay 0 SetKeyDelay -1 SetMouseDelay -1 SetBatchLines -1 ^!6:: CoordMode, Pixel

添加Else语句后,脚本将不会编译do,因为括号不正确。编译器说第67行是罪魁祸首,我不知道为什么

#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Pixel
SendMode Input
#SingleInstance Force
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

^!6::
CoordMode, Pixel, Screen
CoordMode, ToolTip, Screen
CoordMode, Mouse, Screen

Click, 830, 393
Sleep 2000
Click, 678, 538
Sleep 500

Click, 840, 800
Sleep 2000
Click, 671, 974
Sleep 500


Click, 1775, 300
Sleep 2000
Click, 1643, 487
Sleep 2000

var = 0
Loop {
    ImageSearch, FoundX, FoundY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, *100 C:\Users\USER\Desktop\Folder\ImageAssets\storage4x4\image%var%.jpg

    If (ErrorLevel = 0) {
        If %var% = 0 {
            Click, %FoundX%, %FoundY%
            Sleep 50
            Click, %FoundX%, %FoundY%
            Sleep 100
            ToolTip, Refreshing Store..., %FoundX%, %FoundY%
        }

        Else {
            SoundPlay, C:\Users\USER\Desktop\Folder\SoundAssets\found.wav
            Click, %FoundX%, %FoundY%
            Sleep 50
            Click, %FoundX%, %FoundY%
            ToolTip, image%var%.jpg, %FoundX% + 10, %FoundY% + 10
            ErrorLevel := -1
            FoundX := ""
            FoundY := ""
            SearchAndPurchase()
        }
    }

    If ErrorLevel 
        ToolTip, Didn't find image%var%.jpg, 0, 25

    If var >= 10 
        var = 


     var += 1
}
Return

SearchAndPurchase(){
    Sleep 5000
    var = 0 
    Loop, 5 {
        var += 1
        Sleep 5000
        ImageSearch, FoundX, FoundY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, *100 C:\Users\USER\Desktop\Folder\ImageAssets\storage4x4\Storage4x4Store\image%var%.jpg

        If (ErrorLevel = 0) {
            SoundPlay, C:\Users\USER\Desktop\Folder\SoundAssets\chaching.wav
            Click, %FoundX%, %FoundY%
            ToolTip, $$$ image%var%.jpg $$$, %FoundX% + 10, %FoundY% + 10
            Sleep 50
            Click, %FoundX%, %FoundY%
            FoundX := ""
            FoundY := ""
        }
        If (ErrorLevel) 
            ToolTip, Couldn't purchase... 0, 75
        If (var >= 10) 
            var = 0
    }

    ToolTip, Leaving Store and refreshing market..., 0, 25
    Click, 678, 538
    Click, 678, 1043
    Click, 1643, 538
    Sleep 2000
    Click, 678, 538
    Click, 678, 1043
    Click, 1643, 538
    Sleep 2000
}


Esc:: ExitApp

我计算了所有括号,代码中每个方向有7个括号。我还删除了所有括号,并重新添加了几次,试图抓住错误,但没有运气。这是怎么回事?

您有一个浮动赋值:

var=
第63行


大括号是意外的,因为它希望您完成句子。

如果其他人看到类似问题,请检查您的if语句并将所有条件放在括号中。在本例中,它在将所有if条件放在括号内后进行了修复(以及Inc的注释)

我修复了这个问题,但不幸的是,我仍然遇到了同样的错误编译代码时,我在“C:\Users\Robert\DataFiles\U 9 Programs\U Programming\AHK\Someonesprogram.AHK”中成功编译了:>“C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe”/C:\Users\Robert\DataFiles\U 9 Programs\U Programming\AHK\Someonesprogram.AHK:>退出代码:0时间:5.602。。。但话说回来,也许我的平台不可信,请参见:。我明白了,编译之后,你得到了信息。。忽略我的消息。通常,正如您所提到的,最好总是在if语句表达式中使用括号(除了单个true/false bool变量)。但是,在您的特定情况下,它正在检查“var”的内容是否等于“0{”,因此实际上没有开始大括号,因为它是作为表达式的一部分使用的。