Современная технология структурного программирования основана на принципе «программировать без GOTO»: считается, что злоупотребление операторами перехода затрудняет понимание программы, делает её запутанной и сложной в отладке. Тем не менее, в некоторых случаях использование операторов перехода может значительно упростить программу.
Оператор | Модуль | Назначение | Пример |
GOTO | SYSTEM | Предназначен для принудительного изменения хода выполнения программы. Форма записи: метка метка;GOTO <метка> |
LABEL 1, LOOP; ... 1: ... GOTO 1; ... |
Метка это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Допускается использовать в качестве меток целые числа без знака.
Метка располагается непосредственно перед помеченным оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем как появиться в программе, метка должна быть описана. Описание меток состоит из зарезервированного слова LABEL (метка), за которым следует список меток.
Действие оператора GOTO состоит в передаче управления соответствующему меченому оператору. При использовании меток необходимо руководствоваться следующими правилами:
Program Label_Demo; Var St : String; I : Integer; Label First; BEGIN Write('Введите слово: '); Readln(St); Writeln('Повторяю слово 10 раз.'); I:=0; First: Writeln(St); I:=I+1; If I<10 Then Goto First; END.