Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: andrace on June 10, 2015, 11:42:07 AM

Title: Goto и циклы
Post by: andrace on June 10, 2015, 11:42:07 AM
Столкнулся с такой проблемой, если у меня идёт три цикла(while) подряд и например в среднем есть goto, то после перехода по goto скрипт прдолжает выполнять третий цикл. Что я делаю не так?
Title: Re: Goto и циклы
Post by: Vint on June 10, 2015, 02:09:14 PM
Столкнулся с такой проблемой, если у меня идёт три цикла(while) подряд и например в среднем есть goto, то после перехода по goto скрипт прдолжает выполнять третий цикл. Что я делаю не так?
Нельзя выпрыгивать/впрыгивать и перемещаться между циклами через GOTO.

После того как программа встретила начало цикла WHILE, FOR пока она не встретит конец цикла, всё считается телом цикла.

WHILE()  // это начало, сюда вернётся для проверки условия после того как встретит END_CYC
//пока условие верно, программа помнит что выполняется тело цикла n-го уровня вложенности
//...
END_CYC

Если перепрыгнуть в другой:
Code: (clickermann) [Select]
WHILE()  // 1
//...
GOTO(tuda)
//...
END_CYC //1

WHILE()  // 2
//...
tuda:
//...
END_CYC //2

В строке 1 начался цикл.
в строке 3 мы прыгнули на 9
в строке 11 мы увидели END_CYC соответственно понимаем, раз нового вложенного WHILE небыло, мы сейчас дошли до последней строки первого цикла (со строки 1) куда и переходим.
Title: Re: Goto и циклы
Post by: andrace on June 10, 2015, 10:04:18 PM
Cпасибо
Title: Re: Goto и циклы
Post by: Sabin on June 12, 2015, 06:01:38 PM
Cпасибо
Возможность сделать подобный финт - одна из главных причин, почему во многих языках отказываются от goto или крайне не рекомендуют его использовать.