Логические выражения (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 представляет логическое значение, а = знак интерпретируется как оператор сравнения. В автономной инструкции = знак интерпретируется как оператор назначения и назначает значение справа переменной слева. Это показано в следующем примере.

If newCustomer = True Then
    newCustomer = False
End If

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

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

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

42 < 81

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

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

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

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, выполнение переходит к следующей строке кода без оценки правого выражения, так как левое выражение уже проверило все выражение.

Сравнение с операторами без короткого замыкания

В отличие от этого, обе стороны логического оператора оцениваются при использовании логических операторов AndOr . Это показано в следующем примере.

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

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

Скобки

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

См. также