В программах на Turbo Pascal возможно использование вложенных циклов. Это подразумевает, что существует внешний цикл и один или несколько внутренних циклов. Каждое повторение внешнего цикла означает завершение всех внутренних циклов; при этом всем выражениям, которые управляют внутренними циклами, вновь присваиваются начальные значения.
Оператор перехода
Оператор перехода имеет вид:
goto p;
где p— метка, которой помечен некоторый иной оператор в программе. В данном случае речь идет о переходе на метку, указанную после оператора.
Оператор перехода предназначен для передачи управления в другую точку программы (т.е. для нарушения естественного порядка выполнения операторов).
Например:
goto 11;
...
11: WriteLn (a) ;
В Turbo Pascal допускается использовать в качестве меток как числа (от 1 до 9999), так и идентификаторы.
После оператора GOTO должна быть указана единственная метка, и такой же меткой обязательно должен быть помечен один (и только один) из операторов программы. Однако один и тот же оператор может помечаться несколькими метками. Иными словами, каждый оператор перехода передает управление в одну (и только в одну) точку программы, однако возможна передача управления из разных точек программы в одну.
Все метки, используемые в программе, должны быть объявлены. Раздел описания меток обозначается зарезервированным словом LABEL и находится между заголовком и телом программы. Вот как может выглядеть раздел описания меток, в котором объявлены три метки.
label 1, 2, new;
Злоупотреблять использованием операторов GOTO не рекомендуется, поскольку в результате получаются малопонятные программы. Тем более что без оператора GOTO, как правило, можно обойтись, применив другие средства Turbo Pascal.
В заключение заметим, что если метка должна использоваться внутри процедуры или функции, она должна быть в ней описана. Иными словами, передача управления снаружи внутрь процедуры или функции с помощью оператора перехода невозможна.