Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л4.Циклический вычислительный процесс.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
200.7 Кб
Скачать

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

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

Do

statements

Loop While condition

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

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

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

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

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

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

Do

Statements

Loop Until condition

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

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

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

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

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

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

Sub Угадайка()

Dim EventFlag As Boolean

Dim g As Integer

EventFlag = False

Counter = 0 ’ счетчик ваших попыток

Randomize ’ запуск генератора случайных чисел

c = Round(10 * Rnd + 1, 0) ’ генерация случайного числа от 1 до 10

Do

g = InputBox("Угадайте число от 1 до 10")

If g = c Then

EventFlag = True

MsgBox "Ты угадал с " & Counter & " раза"

End If

Counter = Counter + 1

Loop Until EventFlag

End Sub

  1. Введите пример. Найдите в справке генератор случайных чисел и законспектируйте описание и примеры.

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

  3. Запишите эту программу в тетради с помощью другой циклической конструкции по вашему выбору. Введите и выполните ее.

  4. Выводите сообщения об удачливости игрока, в зависимости от числа попыток, например, при попытках больше 5 — «Что-то день сегодня не очень!», а меньше «Ну ты и везунчик!».