Иллюстрированный самоучитель по Турбо Паскалю
Метки и операторы перехода
Можно теоретически показать, что рассмотренных операторов вполне достаточно
для написания программ любой сложности. В этом отношении наличие в языке
операторов перехода кажется излишним. Более того, современная технология
структурного программирования основана на принципе «программировать без GOTO»:
считается, что злоупотребление операторами перехода затрудняет понимание
программы, делает ее запутанной и сложной в отладке.
Тем не менее, в некоторых случаях использование операторов перехода может
упростить программу.
Оператор перехода имеет вид:
GOTO <метка>.
Здесь GOTO - зарезервированное слово (перейти [на метку]); <метка> -
метка.
Метка в Турбо Паскале - это произвольный идентификатор, позволяющий именовать
некоторый оператор программы и таким образом ссылаться на него. В целях
совместимости со стандартным языком Паскаль в языке Турбо Паскаль допускается в
качестве меток использование также целых чисел без знака.
Метка располагается непосредственно перед помечаемым оператором и отделяется
от него двоеточием. Оператор можно помечать несколькими метками, которые в этом
случае отделяются друг от друга двоеточием. Перед тем как появиться в программе,
метка должна быть описана. Описание меток состоит из зарезервированного слова
LABEL (метка), за которым следует список меток:
label
loop, 1b1, 1b2;
begin
.......
goto 1b1;
.......
loop: ......
.......
1b1:1b2: ......
........
goto 1b2;
.......
Действие оператора GOTO состоит в передаче управления соответствующему
меченному оператору.
При использовании меток необходимо руководствоваться следующими правилами:
метка, на которую ссылается оператор GOTO, должна быть описана в разделе
описаний и она обязательно должна встретиться где-нибудь в теле программы;
метки, описанные в процедуре (функции), локализуются в ней, поэтому передача
управления извне процедуры (функции) на метку внутри нее невозможна.