Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор Do…Loop






Существует четыре типа инструкции Do…Loop – два с предусловием и два с постусловием.

Цикл Do…Loop с предусловием:

1). Do While < условие >

[ операторы_1 ]

[Exit Do]

[ операторы_2 ]

Loop

Данный оператор повторяет выполнение операторов тела цикла до тех пор, пока заданное логическое условие истинно. Каждый раз перед выполнением операторов тела цикла проверяется условие и выполняется тело цикла, когда условие равно True, когда False – не выполняется, выполнение цикла завершается и программа переходит к выполнению оператора, следующего за оператором Do…Loop.

2). Do Until < условие >

[ операторы_1 ]

[Exit Do]

[ операторы_2 ]

Loop

Оператор выполняет циклические вычисления до тех пор, пока изначально ложное логическое условие не станет истинным. Отличие данного цикла от предыдущего состоит в том, что тело цикла выполняется, когда условие равно False, когда True – не выполняется и осуществляется выход из цикла.

Необязательный оператор Exit Do предусматривает выход из цикла из любого места тела цикла.

Цикл Do…Loop с постусловием:

1). Do

[ операторы_1 ]

[Exit Do]

[ операторы_2 ]

Loop While < условие >

1). Do

[ операторы_1 ]

[Exit Do]

[ операторы_2 ]

Loop Until < условие >

Цикл с постусловием в отличие от цикла с предусловием будет выполнен обязательно хотя бы один раз. Использование ключевых слов While и Until с условием такое же, как и в циклах с предусловием.

Ниже приведены примеры использования оператора Do…Loop.

Sub DWL()

Dim sName As String

Dim iResponse As Integer

Do While sName = " "

sName = InputBox(" Введите свое имя: ")

If sName = " " Then

MsgBox " Вы не ввели имя "

iResponse =MsgBox(" Хотите выйти из программы? ", _ vbYesNo)

End If

If iResponse = vbYes Then Exit Sub

Loop

MsgBox " Вы ввели имя " & sName

End Sub

 

При запуске процедуры DWL выводится окно,

и если имя введено, то выводится окно с сообщением введённого имени.

Если же имя не введено и нажата кнопка OK или Cancel, то выводится диалоговое окно

и при нажатии кнопки “OK” выводится диалоговое окно

При нажатии кнопки “Да” выполнение процедуры завершается, а при нажатии “Нет” появится окно с предложением ввести имя снова.

В результате выполнения процедуры DUL в ячейке A1 активного листа будет выведено вычисленное значение, равное 10.

Sub DUL()

Dim j As Integer

Range(" A1") = 0

Do Until Range(" A1") > 8

Range(" A1") = Range(" A1") + j

j = j + 1

Loop

End Sub


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал