Оператор goto позволяет переходить на строку кода с соответствующей меткой.
В функциях данный переход переходит на локальные метки (находящиеся в этой функции)
Добавлен оператор global
Синтаксис:
goto global
Будучи прописанный в функции он позволяет делать выход с функции на глобальную метку, объявленную вне функций.
Пример:
CODE:
a:;//№1
ff();
function ff()
{
a:;//№2
goto a;//Пререйдет на метку a №2
goto global a;//Пререйдет на метку a №1
}
ff();
function ff()
{
a:;//№2
goto a;//Пререйдет на метку a №2
goto global a;//Пререйдет на метку a №1
}
CODE:
loop()
{
ff();
//код
messagebox ("код");//Не выполнится есть есть goto global er;
//код
er:;
}
function ff()
{
ff1();
messagebox ("ff");//Не выполнится есть есть goto global er;
}
function ff1()
{
ff2();
messagebox ("ff1");//Не выполнится есть есть goto global er;
}
function ff2()
{
messagebox ("выполнится");
goto global er;//Закоментировать что бы не переходил сразу на метку er
messagebox ("ff2");//Не выполнится есть есть goto global er;
}
{
ff();
//код
messagebox ("код");//Не выполнится есть есть goto global er;
//код
er:;
}
function ff()
{
ff1();
messagebox ("ff");//Не выполнится есть есть goto global er;
}
function ff1()
{
ff2();
messagebox ("ff1");//Не выполнится есть есть goto global er;
}
function ff2()
{
messagebox ("выполнится");
goto global er;//Закоментировать что бы не переходил сразу на метку er
messagebox ("ff2");//Не выполнится есть есть goto global er;
}
На метки объявленные в include так выходить нельзя с функций не в этом include. Они не являются глобальными для другого кода.