Инструкции за цикли и разклонения на програмите
Блокова форма на синтаксис
Dim Number, Digits As Integer
Dim MyString As String
Number = 53 ' Инициализация на променливата.
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
' Условието е вярно - True следващата инструкция се изпълнява.
Digits = 2
Else
Digits = 3
End If
' присвояване на стойностите чрез едно-редова форма на синтаксис (single-line).
If Digits = 1 Then MyString = "One" Else MyString = "More than one"
Използване на ключова дума
TypeOf за определяне на подавания
Control обект.
Sub ControlProcessor(ByVal MyControl As Control)
If TypeOf MyControl Is ComboBox Then
Debug.WriteLine ("You passed in a " & TypeName(MyControl))
ElseIf TypeOf MyControl Is CheckBox Then
Debug.WriteLine ("You passed in a " & TypeName(MyControl))
ElseIf TypeOf MyControl Is TextBox Then
Debug.WriteLine ("You passed in a " & TypeName(MyControl))
End If
End Sub
Отбележете,
че инструкции
If...Then...Else използват оператори за сравнение.
Понякога
единичен израз (expression) в
If...Then...Else не
е достатъчен. Можете да използвате много изрази, за да създадете единична
стойност
True или
False за инструкция
If...Then...Else.
Сега
нека да използваме някои от тези изрази в инструкция
If...Then...Else. В следващия пример, числата от
предните изрази са заместени с променливи:
IntA = 1
IntB = 2
IntC = 3
IntD = 1
If intA=intD And intA=intB Then 'Изразът
е False
'Правим нещо полезно
ElseIf intA=intD And intA<intB Then 'Изразът
е True
'Правим нещо полезно
ElseIf intA=intD Or intA=intB Then 'Изразът
е True
'Правим нещо полезно
ElseIf (intA=intD And intA=intB) Or
intA=intC Then 'Изразът е False
'Правим нещо полезно
ElseIf intA=intD And Not intA=intB Then 'Изразът
е True
'Правим нещо полезно
ElseIf intA=intD Xor intA<intB Then 'Изразът
е False
'Правим нещо полезно
Else
'Правим нещо полезно
End If
Друг
условен оператор е конструкцията
Select Case. Изразът в
Case ще
се сравни с
testexpression. Списъкът
expressionlist е една или повече стойности
разделени със запетая. Инструкциите след първия
Case който съвпада с
testexpression ще се изпълнят. Даже и да има съвпадение на
следващите
Case изрази, те няма да се изпълнят.
Ако никой израз от
Case не съвпадне, ще се изпълнят инструкциите след
Case
Else. Нека да вземем предишния пример с инструкция
If...Then...Else и да го конвертираме със
Select Case:
Select Case
sngTAX
Case Is
<= MIN_TAX
sngPREVOZCost = MIN_PREVOZ_COST
Case Is
<= SECOND_TAX
sngPREVOZCost = SECOND_PREVOZ_COST
Case Is
<= THIRD_TAX
sngPREVOZCost = THIRD_PREVOZ_COST
Case Else
sngPREVOZCost = MAX_PREVOZ_COST
End Select