Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700269.doc
Скачиваний:
15
Добавлен:
01.05.2022
Размер:
1.78 Mб
Скачать

3.4.6. Цикл repeat … until

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

repeat

<операторы тела цикла>

until <выражение условия>;

Структура работает следующим образом. Выполняются операторы тела цикла. Затем вычисляется <выражение условия>, которое должно возвращать результат логического типа. Если выражение возвращает false, то повторяется выполнение операторов тела цикла. Циклическое повторение продолжается до тех пор, пока проверяемое выражение не вернет true. После этого цикл завершается и управление передается оператору, следующему за структурой repeat...until. Поскольку проверка выражения осуществляется после выполнения операторов тела цикла, то эти операторы заведомо будут выполнены хотя бы один раз, даже если выражение сразу истинно. Отметим, что точка с запятой перед ключевым словом until может быть опущена.

3.4.7. Цикл while … do

Структура организации циклов while...do имеет следующий синтаксис.

while <выражение условия> do <оператор>;

Структура работает следующим образом. Сначала вычисляется <выражение условия> логического типа. Если выражение возвращает true, то выполняется оператор тела цикла, после чего опять вычисляется выражение, определяющее условие. Циклическое повторение выполнения оператора и проверки условия продолжается до тех пор, пока условие не вернет false. После этого цикл завершается и управление передается оператору, следующему за структурой while...do. Поскольку проверка выражения осуществляется перед выполнением оператора тела цикла, то, если условие сразу ложно, оператор не будет выполнен ни одного раза. В этом основное отличие структуры while...do от структуры repeat...until, в котором тело цикла заведомо выполняется хотя бы один раз.

3.4.8. Дополнительные операторы организации циклов

В некоторых случаях желательно прервать выполнения цикла, проанализировав какие-то внутренние условия. Это реализуется с помощью оператора break. Он прерывает выполнение тела любого цикла for, repeat или while и передает управление следующему за циклом выполняемому оператору. Отметим, что еще один способ прерывания – использование оператора goto, передающего управление на метку оператора, расположенного вне тела цикла.

Для прерывания циклов, размещенных в процедурах или функциях, можно воспользоваться процедурой exit. В отличие от оператора break, процедура exit прервет не только выполнение цикла, но и выполнение той процедуры или функции, в которой расположен цикл. Прервать выполнение цикла, а заодно – и блока, в котором расположен цикл, можно также генерацией какого-то исключения. Наиболее часто в этих целях используется процедура abort. Наконец, процедура halt инициирует не только выход их цикла, но и аварийно завершает исполняемую программу.

Имеется также процедура Continue, которая прерывает только выполнение текущей итерации текущего выполнения тела цикла и передает управление на следующую итерацию.