Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типы данных и операторы языка Delphi и Pascal.doc
Скачиваний:
2
Добавлен:
20.12.2018
Размер:
211.46 Кб
Скачать

3.10. Операторы завершения цикла

Иногда нужно прервать выполнение цикла, проанализировав какие-то условия внутри него. Для этого можно использовать оператор Break. Он прерывает выполнение тела цикла и передает управление следующему за циклом оператору.

Для прерывания циклов, размещенных в процедурах или функциях, можно использовать процедуру Exit. Она прерывает выполнение той процедуры или функции, в которой расположен цикл.

Прервать выполнение блока, в котором расположен цикл, можно, сгенерировав исключение. Наиболее часто используется процедура Abort, генерирующая «молчаливое» исключение, не связанное с каким-то сообщением об ошибке.

Процедура Continue прерывает выполнение текущей итерации, текущее выполнение тела цикла и передает управление на следующую итерацию.

Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.

3.11. Метки и операторы перехода

При необходимости можно доказать, что рассмотренных операторов достаточно для написания программ любой сложности. К тому же современная технология структурного программирования основана на принципе "программировать без GOTO": считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее запутанной и сложной в отладке. Но в некоторых случаях использование операторов перехода может упростить программу.

Оператор перехода имеет следующий синтаксис:

goto <метка>;

Метку можно назвать именем оператора программы. В стандарте языка Pascal, в языках Object Pascal и Delphi метка – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Для совместимости со стандартом языка Pascal в Object Pascal и в Delphi в качестве меток можно использовать целые числа без знака. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем, как появиться в программе, метка должна быть описана. Описание меток состоит из зарезервированного слова label (метка), за которым следует список меток:

label loop, 1, 2;

begin

goto 1;

loop:

1:2:

goto 2;

Действие оператора goto заключается в передаче управления соответствующему помеченному оператору. При использовании меток необходимо помнить о том, что метка, на которую ссылается оператор goto, должна быть описана в разделе описаний, и она обязательно должна встретиться где-нибудь в тексте программы. Метки, описанные в подпрограмме, локализуются в ней, поэтому передача управления извне подпрограммы на метку внутри нее невозможна.