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

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

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

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

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

1. Цикл For…Next

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

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

<операторы>

Next

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

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

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

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

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

Например, покажем в окне 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 <логическое выражение>

<операторы>

Loop

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

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

Например:

Do While y < 10

y = y + 1

MsgBox “Y = “ & Y

Loop

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

 

4. Цикл Do Until … Loop

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

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

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

<операторы>

Loop

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

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

Например:

Do Until y >= 10

y = y + 1

MsgBox “ Y = “ & y

Loop

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

 

5. Цикл Do … Loop While

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

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

Do

<операторы>

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

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

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

Например:

Do

y = y + 1

MsgBox “ Y = “ & y

Loop While y < 10

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

 

6. Цикл Do … Loop Until

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

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

Do

<операторы>

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 <логическое выражение>

<операторы>

Wend

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

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

Например:

While y < 10

y = y + 1

MsgBoxY = “ & y

Wend








Дата добавления: 2015-06-12; просмотров: 1088;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.016 сек.