Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-методПособие.docx
Скачиваний:
23
Добавлен:
26.11.2019
Размер:
994 Кб
Скачать
☆

4.9 Оператор Exit For

 

Оператор Exit For позволяет выйти из цикла For…Next до его завершения. Тем самым программа сможет среагировать на определённое событие, не завершая выполнение цикла заданное число раз. Например, в следующем примере

 

Dim i As Integer

Dim name As String

For i = 1 To 10

name = InputBox("Введите Ваше имя или слово Обед для выхода")

If name = "Обед" Then

Exit For

End If

MsgBox name

Next

программа запрашивает у пользователя ввод до 10 имён, но если введено слово "Обед", то программа прервёт своё выполнение и приступит к обработке инструкций, следующих за оператором Next. Оператор Exit For обычно используется с оператором If или Select Case.

 

4.10 Программирование циклов Do

 

Для выполнения оператора For необходимо задать параметры, которые будут определять, сколько раз должен выполниться оператор(ы) цикла. Альтернативой циклу с For…Next является цикл Do , в котором группа операторов выполняется до тех пор, пока определённое логическое выражение имеет значение True (истина). Такие циклы нужно применять в тех задачах, где мы не можем знать точно, сколько раз будет повторен цикл. Например, Вы хотели бы, чтобы пользователь вводил пароль в вашей программе до тех пор, пока он не совпадёт с Вашим паролем. Существует несколько разновидностей цикла Do, в зависимости от условий его выполнения.

 

 

4.11 Цикл Do…While

 

Общий вид в алгоритме этого оператора следующий:

 

 

 

 

 

 

 

 

 

 

 

 

Нет Да

 

 

 

 

 

 

Синтаксис оператора следующий:

 

Do While <логическое выражение>

P1

P2

.

.

Pn

Loop

 

где Do(выполнить), While(пока), Loop(петля) - зарезервированные слова, P1, P2, Pn - операторы

 

Если логическое выражение после служебного слова While имеет значение True, то выполняются операторы P1, P2, PN , после чего проверка логического выражения повторяется. Если логическое выражение имеет значение False, то происходит выход из цикла. Если условие в заголовке цикла не является истинным с самого начала, цикл Do не выполняется ни разу.

Другая возможная запись цикла:

Do While Until <логическое выражение>

P1

P2

.

.

Pn

Loop

 

Смысл связки Do While Until <логическое выражение> - до тех пор, пока логическое выражение истинно выполнять операторы P1, P2, Pn.

 

Например, следующий цикл Do обрабатывает данные до тех пор, пока не будет введено слово “Обед”:

 

Dim i As Integer

Dim name As String

Do While name<>"Обед"

name = InputBox("Введите Ваше имя или слово Обед для выхода")

If name <> "Обед" Then

MsgBox name

End If

Loop

 

 

Вернёмся к задаче, которая была разобрана ранее: Найти сумму целых чисел от 1 до 50. В цикле с оператором For ответом было число 1275. Что изменится в программе, если применить оператор Do While? Прежде всего, надо позаботиться о том, чтобы какая-нибудь переменная менялась в цикле от 1 до 50. Ведь такой величины как параметр цикла нет в конструкции Do While - Loop. В нашем примере это будет переменная K. Задав в качестве условия выхода из цикла k <> 50, и применяя в цикле, оператор sum = sum + k мы просуммируем все 50 слагаемых и должны получить в ответе 1275.

1. В редакторе Visual Basic создайте процедуру и назовите её Сумма

2. Введите код процедуры, как на рис. 40

Рис. 40 Код процедуры Сумма целых чисел

 

3. Убедитесь, что ответ равен 1275

Рис. 41 Окно с ответом