1 (изменено: alexii, 2012-06-24 19:26:42)

Тема: AHK: как прервать заданное количество внутренних циклов?

Здравствуйте
Не мог бы меня кто-нибудь просветить: есть ли в Autohotkey альтернитива AutoIt-овскому Continueloop?
ну к примеру:

q::
var:=1

Loop                                  ;место куда я хочу вернуться.
{
var:=0
sleep, 1000
MsgBox, первый цикл
Loop                                  ; а вот куда я возвращаюсь :)                                                
{
sleep, 1000
MsgBox, второй цикл
Loop
{
If var = 1
break
sleep, 1000
MsgBox, третий цикл
}
}
}

предположим: мне нужно при нажатии горячей клавиши вернуться в начало цикла.
в этом примере при нажатии "q" третий цикл прервётся, НО скрипт вернётся ко второму циклу... в AutoIt-е я бы просто написал Exitloop 2 или Continueloop 3 вместо break, ну а как сделать это в autohotkey?:o
Варианты с goto нежелательны, из-за него в своё время переключился на autoit. Мне нужно, чтобы скрипт мог работать дооолго. А при применении goto у меня вылетал крит где-то при 1500 прыжке:(

2 (изменено: creature.ws, 2012-06-24 19:12:48)

Re: AHK: как прервать заданное количество внутренних циклов?

Обязательно прочитать перед созданием темы!

; ahk_l
Loop
{
    var:=0
    sleep, 1000
    MsgBox, первый цикл
    Loop
    {
        sleep, 1000
        MsgBox, второй цикл
        Loop
        {
            If var = 1
                break 2
            sleep, 1000
            MsgBox, третий цикл
        }
    }
}

q::var:=1
; ahk_l
Loop
{
    var:=0
    sleep, 1000
    MsgBox, первый цикл
    Loop
    {
        sleep, 1000
        MsgBox, второй цикл
        Loop
        {
            If var = 1
                Continue 3
            sleep, 1000
            MsgBox, третий цикл
        }
    }
}

q::var:=1

3 (изменено: oldanakin, 2012-06-24 19:29:16)

Re: AHK: как прервать заданное количество внутренних циклов?

Вообще-то так не работает
в break и Continue безрезультатно добавлять цифры. Они всё равно будут работать только внутри своего цикла и всё.

Ну а если конкретно: в первом после применения хоткея будет будет постоянный возврат во второй цикл, т.к. переменная возвращает значение 0 только при задествовании первого цикла.
Во втором скрипт просто залипнет . Из-за того же постоянного возврата.

4 (изменено: creature.ws, 2012-06-24 19:34:52)

Re: AHK: как прервать заданное количество внутренних циклов?

AHK_L > Last update: March 25, 2012 - v1.1.07.03
Changelog for AutoHotkey > 1.0.48.05 - September 25, 2009 > Abandonware

5

Re: AHK: как прервать заданное количество внутренних циклов?

О, спасибо
В Autohotkey_L работает, урраа!