Прекращение выполнения цикла с помощью оператора Exit Do

Оцените статью

windows77725 Прекращение выполнения цикла с помощью оператора Exit DoИногда нужно выйти из цикла Do Whi 1 е или из другого подобного ему цикла на основе результатов, полученных в середине составляющих его операторов, а не в его начале или конце. В таком случае для немедленного перехода за пределы цикла на выполнение оператора, который следует сразу за циклом, может использоваться оператор Exi Предположим, например, что ожидается обработка пяти файлов с именами FILE1.DAT, FILE2.DAT и т. д. Если обнаружится, что заданный файл отсутствует, может появиться необходимость остановить всю обработку и не искать файлы с большими номерами в имени. Как это можно сделать в сценарии, показано в следующем примере:

В данном примере при первом проходе цикла переменной f i 1 ename присваивается значение FI LEl. DAT. При каждом проходе цикла номер в имени файла увеличивается на единицу. Проверяется, существует ли файл, имя которого находится в переменной. Если такого файла нет, оператор Exi t Do выводит выполнение программы за пределы цикла еще до того, как будет предпринята попытка обработки отсутствующего файла.

Нет никаких оснований ограничивать цикл Do Whi 1 е фиксированным числом повторений. Если вообще убрать проверку условия «do», цикл станет бесконечным. Можно переписать предыдущий сценарий для обработки наибольшего количества обнаруженных файлов, с первого и до последнего существующего: Здесь, в отсутствие оператора While или Until, цикл выполняется бесконечно (программисты называют его бесконечным циклом), пока не будет завершен оператором Exit Do. Это означает, что в данном случае нужно проявлять особую осмотрительность, чтобы, в конечном итоге, оператор Exit Do мог бы все же выполниться, иначе ваш сценарий будет крутиться в цикле бесконечно (или пока у вас не лопнет терпение и вы не прервете его, нажав комбинацию клавиш Ctrl+C). Оператор Exit Do работает в любом из четырех вариантов циклов Do While и Do

Комментирование закрыто.

Вверх страницы
x