Иногда в программе после выполнения очередного оператора надо выполнить не следующий по порядку, а другой оператор. В таких случаях используется оператор безусловного переходаgoto. Он осуществляет переход к оператору, перед которым стоит метка. Метка отделяется от оператора двоеточием и объявляется в разделе описания label.
Формат:
Пример:
label metka;
begin . . .
goto metka;
metka : оператор; . . .
end.
Следует знать:
· метка, на которую передается управление, должна быть описана в разделе описания меток того блока (основной программы, процедуры или функции), в которой эта метка используется;
· переход возможен только в пределах блока;
· следует стремиться применять операторы перехода для передачи управления только вниз по тексту программы, при необходимости передачи управления назад следует использовать операторы цикла.
В соответствии с правилами структурного программирования оператор goto следует применять как можно реже, т. к. он усложняет понимание логики программы.
Оператор вызова процедуры служит для выполнения предварительно определенной пользователем или стандартной процедуры.
Если процедура объявлена, то в программе ее можно использовать многократно, просто задавая ее имя и, если необходимо, список аргументов, т.е. вызов происходит с помощью оператора вызова.
Напомним, стандартные процедуры могут вызываться без предварительного описания.
Формат:
Примеры:
Program Prim1;
uses crt;
procedure Vp1;
begin
. . . {тело процедуры Vp1}
end;
begin
СlrScr;{вызов процедуры модуля crt, которая очищает экран и
помещает курсор в левый верхний угол экрана}
Vp1; {вызов процедуры Vp1 для выполнения}
end.
Пустой оператор не содержит символов и не выполняет действий. Чаще всего используется для выхода из программы или составного оператора.
Обычно пустой оператор используется для организации перехода к концу локального или глобального блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставится метка и двоеточие.
Пример:
begin
goto metka; { переход в конец блока }
metka: { пустой оператор помечен меткой }
end;
3.2.2 Структурные операторы
Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на три группы: