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


Логические выражения (Visual Basic)

Логическое выражение — это выражение, результатом вычисления которого является значение логического типа данных: True или False. Выражения Boolean могут принимать различные формы. Самой простой является прямое сравнение значения переменной Boolean с литералом Boolean, например:

If newCustomer = True Then
    ' Insert code to execute if newCustomer = True.
Else
    ' Insert code to execute if newCustomer = False.
End If

Два значения оператора =

Необходимо отметить, что инструкция присваивания newCustomer = True выглядит так же, как выражение из предыдущего примера, но она выполняет другую функцию и используется по-другому. В предыдущем примере выражение newCustomer = True представляет значение Boolean, а знак = интерпретируется как оператор сравнения. В автономной инструкции символ = интерпретируется как оператор присваивания и присваивает вычисленное значение переменной слева. Это показано в приведенном ниже примере.

If newCustomer = True Then
    newCustomer = False
End If

Дополнительные сведения см. в разделе Сравнение значений (Visual Basic) и Операторы (Visual Basic).

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

Операторы сравнения =, <, >, <>, <= и >= сравнивают выражения в левой части оператора с выражением в правой части оператора и представляют результат в виде логического значения True или False. Это показано в приведенном ниже примере.

42 < 81

Поскольку 42 меньше 81, в предыдущем примере выражение Boolean принимает значение True. Дополнительные сведения о выражениях такого рода содержатся в разделе Сравнение значений (Visual Basic).

Операторы сравнения в комбинации с логическими операторами

Выражения сравнения можно комбинировать с логическими операторами для создания более сложных логических Boolean выражений. В следующем примере показано использование операторов сравнения в сочетании с логическим оператором.

x > y And x < 1000

В данном примере значение полного выражения зависит от значений выражений в каждой части оператора And. Если оба выражения True, то полное выражение принимает значение True. Если любая из частей выражения False, то полное выражение принимает значение False.

Операторы, допускающие сокращенные вычисления

Логические операторы AndAlso и OrElse представляют обработку, называемую сокращенной. Эти операторы сначала вычисляют выражение, расположенное слева. Если левый операнд определяет значение всего выражения, то выполнение программы продолжается без вычисления правого выражения. Это показано в приведенном ниже примере.

If 45 < 12 AndAlso testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

В предыдущем примере оператор вычисляет левое выражение 45 < 12. Так как левое выражение False, всё логическое выражение должно возвращать False. Таким образом, выполнение программы пропускает выполнение кода в блоке If без вычисления правого выражения testFunction(3). В этом примере testFunction() не вызывается, поскольку левое выражение опровергает всё выражение.

Аналогично, если для левой части в логическом выражении, использующем OrElse, вычисляется True, то выражение переходит к следующей строке кода без вычисления правого выражения, поскольку левое выражение уже определило результат полного выражения.

Сравнение с обычными операторами

И наоборот, обе части логического оператора вычисляются, если используются логические операторы And и Or. Это показано в приведенном ниже примере.

If 45 < 12 And testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

В предыдущем примере вызывается testFunction(), даже если левое выражение становится равным False.

Выражения в скобках

Круглые скобки используются для управления порядком вычисления выражений Boolean. Выражения, заключенные в круглые скобки, вычисляются в первую очередь. Для нескольких уровней вложения приоритет предоставляется самым глубоко вложенным (внутренним) выражениям. В круглых скобках вычисление выполняется в соответствии с правилами приоритета операторов. Дополнительные сведения см. в разделе Порядок применения операторов в Visual Basic.

См. также

Ссылки

Операторы сравнения (Visual Basic)

Порядок применения операторов в Visual Basic

Тип данных Boolean (Visual Basic)

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

Логические и побитовые операторы в Visual Basic

Сравнение значений (Visual Basic)

Эффективное сочетание операторов (Visual Basic)

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

Операторы в Visual Basic