Логические выражения

Обновлен: Ноябрь 2007

Выражение Boolean — это выражение, результатом вычисления которого является значение типа данных Boolean. 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

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

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

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

42 < 81

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

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

Выражения сравнения можно комбинировать с логическими операторами для создания более сложных логических 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)

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

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