Циклы с проверкой условия после выполнения.

Чтобы условия определителя проверялись после выполнения тела цикла логическое выражение определителя надо просто поместить в конце инструкции, составляющих тело цикла, а именно после ключевого слова Loop, которое сигнализирует о конце цикла.

Создание циклов с помощью Do…Loop While

Первой циклической структурой, где условие определителя проверяется после выполнения цикла, является Do…Loop While, имеющий следующий синтаксис.

Do

statements

Loop Whilecondition

Гдеcondition представляет логическое выражение для определителя цикла, statements — одну или большое количество инструкций VBA (или вообще ни одной из них), которые составляют тело цикла; все они выполняются каждый раз когда выполняется цикл. Ключевое слово Loop, находящееся после statements, сигнализирует что достигнут конец цикла, и указывает точку с которой выполняется переход в начало цикла, чтобы проверить условие определителя.

В инструкции Do…Loop While выражение condition находится в конце цикла, поэтому условие определителя проверяется после выполнения самого цикла.

Поскольку в этом случае используется ключевое слово While, цикл будет выполняться до тех пор, пока логическое выражение, представленное condition, будет иметь значение True.

G Каким бы ни было значение логического выражения, представленного condition, этот цикл выполниться хотя бы один раз.

 

Создание циклов с помощью Do…Loop Until

Другой циклической структурой Do, где условие определителя проверяется после выполнения цикла, является Do…Loop Until, имеющего такой синтаксис.

Do

Statements

Loop Untilcondition

 

В этой инструкции выражение condition находится в конце цикла, поэтому условие определителя повторяется после выполнения самого цикла. Поскольку в этом случае используется ключевое слово Until, то цикл будет выполняться до тех пор, пока логическое выражение, представленное condition, будет иметь значение False.

При выполнении цикла Do…Loop Until вначале выполняются инструкции, представленные в statements. Когда достигнуто ключевое слово Loop, проверяется логическое выражение, представленное condition; если его значение False, то происходит переход в начало структуры и снова выполняется тело цикла. Когда в конце цикла вновь достигнуто ключевое слово Loop и если значение condition сменилось на True, то выполнение продолжается с инструкций, находящихся после строи со словом Loop.

 

G Каким бы ни было значение логического выражения, представленного condition, этот цикл выполниться хотя бы один раз.

Пример цикла Do…Loop Until

В процедуре приведенной ниже нужно угадать случайно сгенерированное число от 1 до 10. Цикл будет выводить окно, до тех пор, пока вы не угадаете «загаданное». В конце цикла, вы узнаете, сколько же попыток вам понадобилось.

Обратите внимание на генератор случайных чисел.