Goto m;Где m-метка, которой помечена любая другая строчка в программе (не абсолютно любая конечно). Метка может обозначаться любой буквой, словом или числом (от 1 до 9999). Помечается оператор следующим образом:m: (оператор); //Не забывайте про двоеточие между меткой и оператором!!!Оператор перехода должен быть объявлен (там где объявляются переменные), перед использованием. Объявляется так:Program GT; //название программы может быть любым.
Label Metka; //Непосредственно само объявление оператора перехода
Begin //Начало кодаВся работа этого оператора сводится к тому, чтобы передать управление оператору, который помечен меткой. Дальнейший ход программы осуществляется как обычно.
Рассмотрим небольшой пример:Program GT; //Название программы может быть любым.
Label Metka; //Непосредственно само объявление оператора перехода
Begin //Начало кода
Goto Metka; //Использование оператора перехода
Showmessage(‘HI’); //Это сообщение не будет отображаться
Metka: Showmessage(‘Goto’); // «Меченный оператор
exit; End; // Завершение программыБез использования оператора перехода, сообщение с текстом: “HI’ появилось бы. Но в этой программе оно не появится. Мы можем видеть нарушение в порядке выполнения кода. Но дальше выполнение программы идёт по обычному порядку.С помощью оператора перехода можно делать циклы:Program GT; //Название программы может быть любым.
Label Metka; //Непосредственно само объявление оператора перехода
Begin //Начало кода
Metka: Showmessage(‘Goto’);
Showmessage(‘HI’);
Goto Metka; //Использование оператора перехода
exit; // Завершение программы
End;Эта программа при запуске зациклится (цикл будет бесконечным). Но зацикливания можно избежать, использовав условный оператор IF.В самом начале статьи говорится, что это оператор может нанести вред. Это действительно так: из-за использования большого числа меток, код становится менее понятным, значит могут быть ошибки в коде. Всего надо в меру!!!
На этом всёLikvidatorMax