Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lector1(Stud).doc
Скачиваний:
6
Добавлен:
02.05.2019
Размер:
225.79 Кб
Скачать

3.2 Операторы цикла

Данные операторы используются для повторного выполнения блоков кода (таблица 1.4).

Таблица 1.4 - Операторы цикла и их описание

Описание

Циклы

Проверяет условия в начале цикла, если оно True, переходит к выполнению цикла и продолжает, пока условие не станет False

Do While … Loop

Проверяет условия в начале цикла, если оно False, переходит к выполнению цикла и продолжает пока не станет True

Do Until … Loop

Выполняет цикл один раз, проверяя условие в конце цикла и, если оно True, продолжает пока условие не станет False

Do … Loop While

Выполняет цикл один раз, проверяя условие в конце цикла и, если оно False, продолжает пока условие не станет True

Do … Loop Until

Выполняет цикл заданное число раз, используя счетчик цикла с определенными начальным и конечным значениями, а также шагом приращения

For … Next

Выполняет цикл по разу для каждого объекта из набора

For Each … Next

Цикл Do … Loop позволяет выполнять блок операторов неопределенное число раз, используется в случаях, когда заранее не известно точное количество итераций. Существует несколько вариантов этого оператора, но в каждом из них проверяется условие и по результатам проверки делается вывод о необходимости продолжения цикла. Как и в операторе If … Then, условие должно быть значением или выражением, которое можно вычислить как True или False. Если блок операторов нужно выполнять заданное число раз, используется цикл For … Next.

Оператор Do While … Loop позволяет проверить условие перед началом цикла и выполняет цикл, пока оно истинно (True). Проверяемое в цикле Do While … Loop условие рано или поздно должно стать False, иначе цикл будет бесконечным. Чтобы остановить бесконечный цикл, предусмотрено сочетание клавиш Ctrl + Break. Процедура Function из следующего примера подсчитывает число вхождений одной строки в другую, выполняя цикл до тех пор, пока не будут найдены все вхождения. Поскольку проверка осуществляется в начале цикла, тот выполняется, только если заданная строка присутствует в другой строке.

Оператор Do Until … Loop позволяет проверять условие в самом начале цикла и продолжает выполнять цикл, пока оно не окажется истинным (True). Если окажется, что условие выполнено в самом начале цикла (даст True), то операторы в теле цикла пропускаются.

Если операторы цикла следует выполнить хотя бы раз, используется оператор Do … Loop While, который позволяет проверять условие в конце цикла. Операторы выполняются пока условие истинно.

В конструкции Do … Loop Until проверка осуществляется в конце цикла, поэтому цикл выполняется минимум один раз и прекращается, когда условие становится истинно (True).

Если заранее известно, что какой-то блок кода надо повторить определенное число раз, используется цикл For … Next. В отличие от операторов серии Do … Loop, в данном операторе используется счетчик, уменьшаемый или увеличиваемый на каждой итерации цикла. Если разновидности оператора Do … Loop завершают цикл, как только условие становится истинным или ложным, то цикл For … Next прекращается, как только счетчик достигает заданного значения.

По умолчанию (как и в этом примере) счетчик увеличивается на каждой итерации цикла на единицу. Ключевое слово Step позволяет изменить шаг приращения, если указывается отрицательное число - счетчик уменьшается на каждой итерации цикла.

Имя переменной в операторе Next указывать не обязательно, но ее присутствие облегчает восприятие программного текста, особенно если в ходе программы используется несколько вложенных циклов For.

Цикл For Each … Next похож на цикл For … Next за исключением того, что он выполняет одну и ту же группу операторов для каждого элемента набора объектов или массива. Он используется в том случае, когда заранее не известно число элементов в наборе или когда их количество может измениться в ходе выполнения процедуры. Синтаксис оператора выглядит следующим образом:

For Each элемент In группа

операторы

Next элемент

Встретив оператор For Each … Next, Visual Basic:

  1. Считает элемент именем первого элемента в группе (если группа не пуста).

  2. Выполняет операторы.

  3. Проверяет, не последний ли это элемент в группе, и, если да, завершает цикл.

  4. Подставляет вместо элемента имя следующего элемента в группе.

  5. Повторяет операции, описанные в пунктах 2-4 данной последовательности.

Указывать имя переменной после Next не обязательно, но это облегчает восприятие текста в программе, особенно при наличии нескольких встроенных циклов For Each.

Если необходимо удалить все объекты из набора, следует использовать цикл For … Next, а не For Each … Next.

Применяя оператор For Each … Next, следует помнить о следующих ограничениях:

  • в случае наборов элементом может быть переменная типа Variant, Object или конкретного объектного типа из библиотеки объектов, а для массивов – только Variant;

  • оператор For Each … Next не годится для массивов пользовательских типов, так как в переменную типа Variant нельзя записать значение пользовательского типа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]