Практическое руководство. Запуск инструкции в зависимости от одного или более условий
Обновлен: Ноябрь 2007
Можно использовать Оператор If...Then...Else (Visual Basic) для запуска конкретных операторов или блока операторов в зависимости от значения Тип данных Boolean (Visual Basic) условия. Условие обычно является результатом сравнения двух значений, но оно может быть любым выражением, значение которого при вычислении имеет тип Boolean (True или False). Сюда же относятся значения других типов данных, например, числовых типов, преобразованные в тип Boolean.
Выполнить одну или несколько инструкций, если условие True
Если имеется только один оператор для запуска, используйте однострочный синтаксис конструкции If... Then... Else. Вам не потребуются операторы Else или End If. Это показано в приведенном ниже примере.
Sub fixDate() Dim myDate As Date = #2/13/1973# If myDate < Now Then myDate = Now End Sub
-либо-
Для выполнения нескольких строк кода при значении условия True следует использовать многострочный синтаксис, который включает оператор End If. Если не имеется кода для запуска при значении условия, равного False, исключите оператор Else. Это показано в приведенном ниже примере.
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) End If End Sub
Запустить одни операторы при значении условия True, а другие при значении условия False
Используйте конструкцию If... Then... Else с оператором Оператор Else (Visual Basic) для определения двух блоков инструкций. Visual Basic запускает один блок, если условие равно True и другой, если оно равно False. Это показано в приведенном ниже примере.
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) Else alertLabel.Forecolor = System.Drawing.Color.Black alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Regular) End If End Sub
Проверка дополнительных условий, если значение первого условия — False
Используйте конструкцию If...Then...Else с помощью одного или нескольких операторов ElseIf (Visual Basic) для проверки дополнительных условий, если первое условие равно False. В следующем примере, процедура Function вычисляет надбавку к заработной плате в зависимости от уровня производительности. Блок оператора, следующего за оператором Else, выполняется только если условия в операторах If и ElseIf все равны False.
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) _ As Decimal If performance = 1 Then Return salary * 0.1 ElseIf performance = 2 Then Return salary * 0.09 ElseIf performance = 3 Then Return salary * 0.07 Else Return 0 End If End Function
Visual Basic проверяет условия в порядке их появления в операторах If... Then ... Else. Когда он встречает условие True или оператор Else, выполняется соответствующий блок оператора. Управление затем передается оператору, следующему за оператором End If.
Допускается любое число операторов ElseIf или ни одного. Пользователь может включать или исключать один оператор Else, независимо от наличия операторов ElseIf.
См. также
Задачи
Практическое руководство. Передача управления за пределы структуры управления
Практическое руководство. Проверка нескольких значений выражения
Практическое руководство. Сохранение элемента управления при ошибке
Основные понятия
Вложенные структуры управления