DataLife Engine > Delphi > Оператор перехода

Оператор перехода


10 февраля 2008. Разместил: podpole
И в Delphi и в Turbo Pascal’e есть этот оператор- оператор перехода. Кто-то его называет: «оператор прыжка». Довольно интересный оператор, с моей точки зрения. Он может помочь, а может и навредить. Некоторые люди им не советуют пользоваться, но иногда без него сложно.

Оператор перехода имеет вид:
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.

В самом начале статьи говорится, что это оператор может нанести вред. Это действительно так: из-за использования большого числа меток, код становится менее понятным, значит могут быть ошибки в коде. Всего надо в меру!!!


На этом всё