Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> Основы программирования >> Управляющие конструкции >> Выход из циклов и процедур

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Выход из циклов и процедур


Обычно процедуры и циклы в макросах выполняются от начала и до конца. Но бывают ситуации, когда досрочный выход из процедуры или цикла ускоряет работу за счет отказа от ненужных повторений.

Например, осуществляя поиск в массиве в цикле For...Next и найдя нужное значение уже на первой итерации, нет смысла просматривать остальную часть массива ? разумнее тут же прекратить цикл и перейти к следующим за ним операторам. Если при выполнении процедуры происходит ошибка, делающая бессмысленным выполнение остальных ее операторов, то, естественно, надо немедленно выйти из процедуры. Вот для таких случаев и предназначены операторы Exit.

Хотя операторы Exit очень удобны, используйте их только при крайней необходимости, а не при нормальном ходе выполнения процедуры или цикла. Злоупотребление операторами Exit затруднит чтение и отладку Вашего кода.

Кроме того, для пропуска части кода можно придумать и более подходящие способы. Например, при поиске значения в массиве внутрь цикла For...Next вместо оператора Exit можно поставить оператор Do...Loop, чтобы поиск шел только до тех пор, пока текущее значение индекса меньше верхней границы массива и значение переменной типа Boolean равно False (см. пример ниже). Когда искомое значение найдено, переменная типа Boolean устанавливается как True, и цикл прекращается.

i = LBound(searchArray)
ub = UBound(searchArray)
foundIt = False
Do
     if searchArray(i) = findThis Then foundIt = True
     i = i+1
Loop While i <= ub And Not ftoundIt

Для досрочного выхода из оператора Do...Loop используется оператор Exit loop, а для досрочного выхода из цикла For - оператор Exit For:

For Each с In rangeToSearch
     if c.Value = searchValue Then
          found = True
          Ex
it For
     End If
Next

Для досрочного выхода из процедур служат операторы Exit Sub и Exit Function:

For Each c In rangeToSearch
     if c.Value = searchValue Then
          counter = counter + 1
     Elself c.Value = "Bad Data" Then
          countVa
lues = Null
          Exit Function ' прекращаем проверку и немедленно выходим
     End If
Next с



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017