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

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 Окно с ответом

 

 

 

 

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