Автокликер Clickermann :: Форум
		Основной раздел => Общие вопросы => Topic started by: andrace on June 10, 2015, 11:42:07 AM
		
			
			- 
				Столкнулся с такой проблемой, если у меня идёт три цикла(while) подряд и например в среднем есть goto, то после перехода по goto скрипт прдолжает выполнять третий цикл. Что я делаю не так?
			
- 
				Столкнулся с такой проблемой, если у меня идёт три цикла(while) подряд и например в среднем есть goto, то после перехода по goto скрипт прдолжает выполнять третий цикл. Что я делаю не так?
 
 Нельзя выпрыгивать/впрыгивать и перемещаться между циклами через GOTO.
 
 После того как программа встретила начало цикла WHILE, FOR пока она не встретит конец цикла, всё считается телом цикла.
 
 WHILE()  // это начало, сюда вернётся для проверки условия после того как встретит END_CYC
 //пока условие верно, программа помнит что выполняется тело цикла n-го уровня вложенности
 //...
 END_CYC
 
 Если перепрыгнуть в другой:
 WHILE()  // 1
 //...
 GOTO(tuda)
 //...
 END_CYC //1
 
 WHILE()  // 2
 //...
 tuda:
 //...
 END_CYC //2
 В строке 1 начался цикл.
 в строке 3 мы прыгнули на 9
 в строке 11 мы увидели END_CYC соответственно понимаем, раз нового вложенного WHILE небыло, мы сейчас дошли до последней строки первого цикла (со строки 1) куда и переходим.
 
- 
				Cпасибо
			
- 
				Cпасибо
 
 Возможность сделать подобный финт - одна из главных причин, почему во многих языках отказываются от goto или крайне не рекомендуют его использовать.