- •Лекция 6. Управление потоком (продолжение). Условные переходы. Циклы.Оператор With. Немедленный выход с помощью оператора Exit For Оператор Goto Примеры работы с двоичной логикой
- •Операторы условного перехода:
- •If…Then, If…ElseIf, Select Case Оператор условного перехода If…Then
- •Пример использования условного перехода If…Then
- •Оператор условного перехода If…ElseIf
- •Оператор Select Case
- •Операторы циклов:
- •Повторение под управлением цикла For…Next
- •Пример вложенных циклов For…Next
- •Важные замечания по поводу циклов For…Next
- •Использование оператора цикла For Each… Next
- •Циклы Do…Loop
- •Типы оператора цикла Do…Loop
- •Пример оператора Do While (условие) Loop
- •Использование оператора Do …Until Loop (условие)
- •Использование оператора With
- •Использование оператора Is
- •Немедленный выход с помощью оператора Exit For
- •Управление потоком с помощью оператора Go To
Использование оператора Do …Until Loop (условие)
Можно для предыдущего примера использовать также оператор цикла
Do … Loop Until (условие)
Do
ВводимыеИмена =InputBox("Введите Ваше имя или слово "Готово" для выхода")
If ВводимыеИмена < > "Готово" Then
Print ВводимыеИмена
Loop Until ВводимыеИмена = "Готово"
т.е., в данном примере в смысловом отношении более удобно использовать оператор цикла Do … Loop Until (условие), при этом условие записывается более просто: ВводимыеИмена = "Готово".
Использование оператора With
Если в программе один и тот же объект используется в нескольких идущих один за другим операторах, то использование оператора With (пока) позволяет указать объект только один раз. Это делает код более понятным, а его выполнение более быстрым. Например:
With objПолнаяОбъективность
.Name = "Опрос общественного мнения" ' установка свойства Name
.DisplayName ' вызов имени DisplayName
sngRegion = .Area ' выяснение значения свойства Area
intПодтасовка = .Rotate (60) ' вызов метода Rotate (Поворот)
' и сохранение возвращаемого им значения в переменной
End With
Как видно, конструкция With…End With может включать операторы, в которых читаются и устанавливаются свойства, вызываются методы. Данная конструкция не задает цикл: входящие в нее операторы будут выполнены только один раз.
Конструкции, использующие With, можно вкладывать одна в другую. Это удобно, когда нужно выполнить ряд действий и по отношению к некоторому объекту, и по отношению к одному из содержащихся в нем объектов.
Использование оператора Is
Если необходимо выяснить идентичность двух ссылок на объекты, то это можно сделать с помощью оператора Is (результат будет True или False),например,
Dim objObject1 As Object, objObject2 As Object
….
If objObject1 Is objObject2 Then
MsgBox "Это тот же самый объект!"
Else
MsgBox "Это разные объекты!"
End If
Немедленный выход с помощью оператора Exit For
Обычно этот оператор используется в условном выражении (If…Then и Select ...Case), вложенном в главный цикл For…Next. например, при появлении недопустимого значения:
For p = 1 To varДлинаМассива
If varЦена (p) = "Здесь был Ваня!" Then
MsgBox "Данные испорчены."
Exit For
End If
varЦена (p) = varЦена (p) * sngCOLA
Next p
Управление потоком с помощью оператора Go To
Оператор Go To в совокупности со специальным оператором метки в месте назначения позволяет перемещаться от одной процедуры к другой, т. е. - это использование безусловного перехода. Метка – это оператор, отмечающий некоторое место в программе. Чтобы задать метку, напечатайте в нужном месте ее имя, а после него двоеточие.
В следующем примере оператор Go To направляет поток из главной части процедуры к метке, в частности, с именем "Метка", если встречается необычное значение:
Function ПримерGoTo (Номер As Integer)
Dim intR As Integer
IntR="Ошибка"
Select Case Номер
Case 2412
Go To Метка
….
End Select
(операторы, выполняющие какие-то действия)
Метка:
ПримерGoTo = IntR
End Function
С оператором Go To код читается гораздо труднее, поэтому по возможности следует использовать структуры, позволяющие выполняться программе последовательно. Но иногда этот оператор является наиболее естественным способом для того, чтобы заставить программу делать то, что нужно.