Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 4.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
52.27 Кб
Скачать

Инструкция For Each...Next

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

Предпочтительный способ перебора ячеек диапазона — организация именно цикла For Each...Next; этот цикл рекомендуется и при переборе элементов наборов.

Синтаксис:

For Each Элемент In Группа

блок_инструкций

[Exit For]

блок_ инструкций

Next Элемент

Синтаксис инструкции For Each...Next содержит следующие элементы:

элемент - обязательный элемент. Переменная, используемая для выполнения итераций по элементам семейства или массива. Для семейств элемент может быть только переменной типа Variant, универсальной объектной переменной или переменной, представляющей любой конкретный объект. Для массивов элемент может быть только переменной типа Variant;

группа - обязательный элемент. Имя семейства объектов или массива (за исключением массивов с определяемыми пользователем типами);

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

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

В любых местах цикла может размещаться любое число инструкций Exit For, позволяющих выйти из цикла. Инструкция Exit For часто применяется вместе с проверкой некоторого условия (например, If…Then). Она передает управление инструкции, непосредственно следующей за инструкцией Next.

Допускается организация вложенных циклов For Each...Next (один цикл For Each...Next располагается внутри другого). Однако каждый элемент цикла должен быть уникальным.

Если опустить элемент в инструкции Next, выполнение продолжается так же, как если бы элемент был указан. При обнаружении инструкции Next до соответствующей инструкции For возникает ошибка.

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

Допускается выход из цикла For Each...Next до его завершения с помощью инструкции Exit For. Например, если возникает ошибка, для ее проверки можно использовать инструкцию Exit For в блоке True инструкции If...Then...Else или инструкции Select Case. Если ошибки нет, инструкция If...Then...Else имеет значение False, и выполнение цикла продолжается, как ожидалось.

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

Инструкция Do...Loop

Повторяет выполнение набора инструкций, пока условие имеет значение True или пока оно не примет значение True. Инструкция Do...Loop используется для выполнения наборов инструкций неопределенное число раз. Набор инструкций повторяется, пока условие имеет значение True, либо пока оно не примет значение True.

Синтаксис:

Do [{While | Until} условие](выполняется пока истина/ложь)

[инструкции]

[Exit Do]

[инструкции]

Loop

Допустим также другой синтаксис:

Do

[инструкции]

[Exit Do]

[инструкции]

Loop [{While | Until} условие]

Синтаксис инструкции Do Loop содержит следующие элементы:

условие - необязательный элемент. Числовое выражение или строковое выражение, которое имеет значение True или False. Если условие имеет значение Null,то аргумент условие рассматривается как значение False;

инструкции - одна или несколько инструкций, выполнение которых повторяется, пока условие имеет значение True или пока оно не приобретет значение True.

В любом месте управляющей структуры Do…Loop может быть размещено любое число инструкций Exit Do, обеспечивающих альтернативные возможности выхода из цикла Do…Loop. Часто используемая вместе с определением некоторого условия (например, If…Then), инструкция Exit Do передает управление инструкции, непосредственно следующей за инструкцией Loop.

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