русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с циклами


Дата добавления: 2015-08-31; просмотров: 687; Нарушение авторских прав


Циклы используются в ситуациях, когда нам нужно выполнить какое-либо действие несколько раз. Первая ситуация — мы знаем, сколько раз нужно выполнить определенное действие, в этом случае используется конструкция

For. . .Next:

For iCounter = 1 to 10

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

Next

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

For iCounter = 1 to 10 Step 2

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

Next

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

For iCounter = 10 to 1 Step -2

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

Next

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

Exit For:

VStop = InputBox("Введите значение останова")

VInput = CInt(VStop)

For iCounter = 1 to 10

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

If iCounter =VInput Then Exit For

Next

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

For Each...Next:

For Each oWbk in Workbooks

MsgBox oWbk.Name

Next

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

For Each oWbk in Workbooks

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

Set oMyWorkBook = oWbk

Exit For

End If

Next

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



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

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

Еще одна ситуация: когда мы не знаем точно, сколько раз должна быть выполнена та или другая команда — это зависит от какого-либо условия. В этом случае используются конструкции Do While...Loop и Do Until...Loop.

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

 

Do While MyVar < 10

MyVar = MyVar + 1

MsgBox "MyVar = " & MyVar

Loop

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

Если вы случайно запустили в своей программе бесконечный цикл, нажмите на клавиши <Ctrl>+<Break>. Откроется окно, аналогичное представленному на рис. 3.1, в котором вы сможете продолжить выполнение (кнопка Continue),за­вершить его (End)или открыть ваш код в отладчике (Debug).

Рис. 3.1.Выполнение макроса остановлено no <Ctrl>+<Break>

Второй вариант— Do Until...Loop. Все выглядит точно также, за одним исключением: цикл будет выполняться до тех пор, пока условие ложно.

Do Until MyVar >= 10

MyVar = MyVar + 1

MsgBox "MyVar = " & MyVar

Loop

Можно переписать цикл так, чтобы условие проверялось после завершения цикла:

Do

MyVar = MyVar + 1

WScript.Echo "MyVar = " &" MyVar

Loop While MyVar < 10

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

 

В VBA имеется также конструкция While.. .Wend. Это еще один вариант цикла, который оставлен для обратной совместимости с первыми версиями Visual Basic. Функциональные возможности — те же, что и у конструкции Do While...Loop:

While My Var < 10

MyVar - MyVar + 1

WScript.Echo "MyVar = " & MyVar

Wend



<== предыдущая лекция | следующая лекция ==>
Работа с операторами условного перехода | Массивы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.03 сек.