Поделиться через


Практическое руководство. Запуск инструкции в зависимости от одного или более условий

Обновлен: Ноябрь 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.

См. также

Задачи

Практическое руководство. Передача управления за пределы структуры управления

Практическое руководство. Проверка нескольких значений выражения

Практическое руководство. Сохранение элемента управления при ошибке

Основные понятия

Структуры решений

Циклические структуры

Другие структуры управления

Вложенные структуры управления

Другие ресурсы

Управление ходом выполнения в Visual Basic