Повторение с помощью циклов

We use cookies. Read the Privacy and Cookie Policy

Повторение с помощью циклов

Управляющие структуры типа "цикл" используются тогда, когда необходимо повторить выполнение некоторого блока программного кода несколько раз. Повторение одного или нескольких операторов является главным средством выполнения многих математических вычислений, извлечения небольших порций данных из больших, применения одних и тех же действий по отношению к каждому из множества элементов некоторой группы.

VBA предлагает три типа структур, организующих циклы.

Тип цикла

Особенности работы

Do. . .Loop

Пока или до тех пор, пока некоторое условие имеет значение True

For. . .Next

Заданное число раз

For Each. .. Next

Для каждого объекта из коллекции объектов

При работе с вложенными циклами помните простое правило: внутренний цикл должен закончиться прежде, чем закончится внешний.

Циклы Do

Все возможные версии оператора Do ... Loop предназначены для повторения заданного блока программного кода неопределенно долго, пока не будет выполнено некоторое условие.

Для того чтобы выяснить, продолжать цикл или нет, оператор Do ... Loop оценивает заданное условное выражение типа условных выражений, используемых для оператора If... Then и описанных выше в разделе "Курс на использование условных выражений".

Случаев, когда структуры Do... Loop полезны, просто не счесть. Вот несколько примеров.

* Отображение сообщения об ошибке снова и снова, пока пользователь не введет подходящую информацию в диалоговое окно.

* Чтение данных из файла на диске, пока не будет обнаружен конец файла.

* Поиск и подсчет числа вхождений некоторой строки символов в более длинной строке.

* Организация холостой работы программы в течение некоторого времени.

* Выполнение некоторых действий по отношению ко всем элементам массива.

* Выполнение (с использованием операторов If... Then ) некоторых действий по отношению ко всем элементам массива или коллекции, удовлетворяющим определенным критериям (массивы и коллекции рассматриваются в главе 13).