Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Wend

Do

Do

Loop

Loop

Next

Теоретическая часть

ЛАБОРАТОРНАЯ РАБОТА №8. Программирование циклов

Вопросы для контроля

1. Каков формат оператора Select Case?

2. С помощью какого оператора удобнее решать задачи с условием? Всегда ли можно применить оператор выбора Select Case?

3. Является ли обязательной часть оператора Case Else? Как ее отсутствие повлияет на выполнение программы?

 

Цель работы: рассмотреть операторы цикла - For...Next, For Each...Next, Do While, Do Until, While...Wend; научиться применять операторы цикла в создаваемых приложениях

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

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

1. Цикл For…Next

Для повтора цикла заданное количество раз используется конструкция For…Next, синтаксис которой следующий:

For <переменная>=<начало> to <конец> [Step <шаг>]

<операторы>

Здесь <переменная> - переменная (параметр) цикла целого типа

<начало> - начальное значение параметра цикла

<конец> - конечное значение параметра цикла

<оператор> - оператор (действие) тела цикла

<шаг> - шаг цикла, т.е. то значение, на которое увеличивается параметр цикла при каждом повторе; является необязательным

Например, покажем в окне MsgBox 10 раз слово «счетчик» с его порядковым номером:

For i = 1 to 10

MsgBox "Счетчик: " & i

Next

Чтобы указать, насколько должно прирастать значение счетчика, используется ключевое слово Step:

For i = 1 to10 Step 2

MsgBox "Счетчик: " & i



Next

Можно и уменьшать исходное значение счетчика:

For i = 10 to 1 Step -2

MsgBox "Счетчик: " & i

Next

Для безусловного выхода из конструкции For…Next используется команда Exit For.

x = InputBox (“Введите значение останова”)

y = CInt(x)

For i = 1 to10

MsgBox "Счетчик: " & i

Ifi =y Then Exit For

Next

 

2. Цикл For Each … Next

Очень часто в VBA требуется сделать какое-нибудь действие со всеми элементам коллекции или массива - перебрать все открытые документы, все листы Excel, все ячейки в определенном диапазоне и т.п. Для того, чтобы пройти циклом по всем элементам коллекции, используется команда For Each … Next.

Например:

For Each Wbk in Workbooks

MsgBox Wbk.Name

Next

При использовании этого приема можно очень просто найти и получить ссылку на нужный объект:

For Each Wbk in Workbooks

If Wbk.Name = "Сводка.xls" Then

Set MyWorkBook = Wbk

Exit For

End If

Next

В этом случае цикл проходит по всем элементам коллекции Workbooks (то есть открытым рабочим книгам в Excel), для каждой книги проверяет ее имя, и если найдена книга с именем Сводка.xls, то пользователь получает на нее ссылку и происходит выход из цикла. Коллекция рабочих книг - это специальная коллекция, которая умеет производить поиск в себе по имени элементов, поэтому можно было бы обойтись такой строкой:

Set MyWorkBook = Workbooks("Сводка.xls")

Но для многих других коллекций без конструкции For Each не обойтись.

 

3. Цикл Do While … Loop

Конструкция Do While означает: выполнять какое-либо действие до тех пор, пока условие истинно (проверка условия в начале цикла).

Общий вид конструкции следующий:

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

<операторы>

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

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

Например:

Do While y < 10

y = y + 1

MsgBox “Y = “ & Y

Loop

Применений на практике - множество: пройти по всему набору записей, пока они не закончатся; требовать от пользователя ввести подходящее значение, пока он не введет его, и т.п.

 

4. Цикл Do Until … Loop

Этот цикл служит для того, чтобы, пока условие не выполняется, повторять тело цикла (проверка условия содержится в начале цикла).

Общий вид конструкции следующий:

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

<операторы>

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

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

Например:

Do Until y >= 10

y = y + 1

MsgBox “ Y = “ & y

Loop

Немедленный выход из цикла можно произвести по команде Exit Do.

 

5. Цикл Do … Loop While

Этот цикл служит для того, чтобы повторять тело цикла, пока выполняется условие (проверка условия содержится в конце цикла).

Общий вид конструкции следующий:

<операторы>

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

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Вначале выполняется тело цикла, расположенное после ключевого слова Do, а затем проверяется <логическое выражение>. Пока <логическое выражение> равно true, тело цикла выполняется, а как только <логическое выражение> станет равно false, работа продолжится со следующего оператора после Loop While <логическое выражение>.

Например:

Do

y = y + 1

MsgBox “ Y = “ & y

Loop While y < 10

В этом случае цикл будет выполнен, по крайней мере, один раз.

 

6. Цикл Do … Loop Until

Этот цикл служит для того, чтобы повторять тело цикла, пока условие не выполняется (проверка условия содержится в конце цикла).

Общий вид конструкции следующий:

<операторы>

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

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Вначале выполняется тело цикла, расположенное после ключевого слова Do, а затем проверяется <логическое выражение>. Пока <логическое выражение> равно false, тело цикла выполняется, а как только <логическое выражение> станет равно true, работа продолжится со следующего оператора после Loop Until <логическое выражение>.

Например:

Do

y = y + 1

MsgBox “ Y = “ & y

Loop Until y > 10

 

7. Цикл While … Wend

В VBA имеется также конструкция While … Wend. Это вариант цикла, который оставлен для обратной совместимости с первыми версиями Visual Basic. Он служит для того, чтобы повторять тело цикла заранее неизвестное количество раз. Количество повторений определяет ситуация, возникающая во время выполнения тела цикла.

Общий вид конструкции следующий:

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

<операторы>

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Пока <логическое выражение> равно true, тело цикла выполняется, а как только <логическое выражение> станет равно false, работа продолжится со следующего оператора за служебным словом Wend.

Например:

While y < 10

y = y + 1

MsgBoxY = “ & y

Wend

Для завершения бесконечного цикла нажмите на клавиши <Ctrl>+<Break>!

Откроется окно, аналогичное окну, представленному на рис.8.1, в котором можно продолжить выполнение, завершить его или открыть созданный код в отладчике.





Дата добавления: 2014-12-23; Просмотров: 741; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:
studopedia.su - Студопедия (2013 - 2022) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.019 сек.