Студопедия

КАТЕГОРИИ:

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


Повторение действий с помощью цикла




Цикл — это инструмент, позволяющий повторять операцию столько раз, сколько нужно. В языке Visual Basic есть несколько типов циклов, которые можно использовать. Наиболее популярны блоки Do/Loop и For /Next, и в этом разделе вы познакомитесь с обоими.

Далее приведен пример блока Do/Loop, который наверняка выведет читателей из равно­весия:

Do

MsgBox "Ever ever get that nagging deja vu feeling?" Loop

Когда программа Access обрабатывает этот код, она начинает с вывода окна сообщения и остановки выполнения остального вашего кода. После того как вы щелкнули мышью кнопку ОК, выполнение кода продолжается до финального оператора Loop в конце цикла. В этот момент программа автоматически переходит к началу цикла (оператор Do) и повторяет ваш код, выводя второе окно сообщения. Проблема в том, что этот процесс продолжается беско­нечно! Если допустить ошибку и запустить этот код, ваша БД будет заблокирована на неоп­ределенное время (пока вы не нажмете комбинацию клавиш аварийного останова <Ctrl>+<Break>).

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

' Отслеживает количество повторений цикла

Dim NumberOfTimes

 

' Начинает отсчет с 0

NumberOfTimes = 0

 

Do

MsgBox "Ever ever get that nagging deja vu feeling?"

 

' Увеличивает счетчик на 1

NumberOfTimes = NumberOfTimes + 1

Loop Until NumberOfTimes =5


Важная часть — оператор в конце цикла, Until Number0fTimes=5. Он определяет ус­ловие, и как только оно становится True (значение переменной NumberOfTimes равно 5), программа Access достигает конца цикла и переходит к выполнению оставшегося кода про­цедуры.

Если вам нужен цикл с фиксированным количеством повторений, возможно, вас заинте­ресует цикл типа For/Next. Этот тип цикла в точности такой же, как цикл Do/Loop за ис­ключением того, что у него есть встроенный счетчик, увеличивающийся автоматически при каждом проходе цикла.

Теперь можно переписать предыдущий пример в более компактной форме с применени­ем цикла For/Next:

Dim NumberOfTimes

For NumberOfTimes = 1 To 5

MsgBox "Ever ever get that nagging deja vu feeling?"

Next

Важная часть цикла - оператор NumberOfTimes=l To 5, сообщающий программе Ac­cess о начальном значении переменной NumberOfTimes, равном 1, о необходимости увели­чения ее значения на 1 при каждом проходе цикла и о завершении цикла после пятого про­хода.

Цикл Do/Loop удобен при обработке коллекции данных. Его можно применять для об­работки информации до тех пор, пока она не иссякнет, даже если заранее вы не знаете, сколько данных у вас есть. Вы увидите пример использования этого метода в конце данной главы, когда будете выполнять пакетное обновление вашей БД с помощью программного кода.

С другой стороны цикл For/Next предстанет во всей красе, если вы можете точно опре­делить заранее, сколько раз хотите повторить цикл. В справедливости этого вы убедитесь чуть позже в этой главе, когда будете проверять номера кредитных карт.

 

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 91; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты