Оператор Or (Visual Basic)

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

result = expression1 Or expression2

Части

  • result
    Обязательный. Произвольное выражение типа Boolean или числового типа. Для сравнения Boolean result является операцией логической включающей дизъюнкции двух значений Boolean. При побитовых операциях result — числовое значение, представляющее включающую побитовую дизъюнкцию двух числовых битовых шаблонов.

  • expression1
    Обязательный. Произвольное выражение типа Boolean или числового типа.

  • expression2
    Обязательный. Произвольное выражение типа Boolean или числового типа.

Заметки

Для логического сравнения Boolean — result равен False только в том случае, если оба выражения expression1 и expression2 имеют значение False. В следующей таблице показан порядок определения результата result.

Если expression1 имеет значение

И выражение expression2 имеет значение

значение result будет следующим:

True

True

True

True

False

True

False

True

True

False

False

False

Примечание

При логическом сравнении Boolean оператор Or всегда вычисляет оба выражения, которые могут включать вызовы процедур.Оператор OrElse (Visual Basic) реализует сокращенную обработку, это означает, что, если expression1 имеет значение True, то expression2 не вычисляется.

При побитовых операциях оператор Or выполняет побитовое сравнение одинаково расположенных битов в двух числовых выражениях и задает соответствующий бит в элементе result согласно следующей таблице.

Если бит в expression1 имеет значение

И бит в expression2 имеет значение

Бит в result имеет значение

1

1

1

1

0

1

0

1

1

0

0

0

Примечание

Поскольку логические и битовые операторы имеют более низкий приоритет по сравнению с другими арифметическими и сравнительными операторами, битовые операции следует заключать в круглые скобки, чтобы обеспечить правильное выполнение.

Типы данных

Если операнды состоят из одного выражения типа Boolean и одного числового выражения, Visual Basic преобразует выражение типа Boolean в числовое значение (–1 для True и 0 для False) и выполняет битовую операцию.

Для сравнения Boolean используется тип данных результата Boolean. Тип данных результата для побитового сравнения является числовым типом, соответствующим типам данных expression1 и expression2. См. таблицу "Относительное и побитовое сравнение" в разделе Типы данных результатов оператора (Visual Basic).

Перегрузка

Оператор Or может быть перегружен; это означает, что класс или структура может переопределить его поведение, если операнд имеет тип соответствующего класса или структуры. Если в коде используется этот оператор для такого класса или структуры, убедитесь, что его переопределенное поведение вам понятно. Дополнительные сведения см. в разделе Процедуры операторов (Visual Basic).

Пример

В данном примере оператор Or используется для выполнения включающей логической дизъюнкции над двумя выражениями. Результат представляет собой значение Boolean, показывающее, имеет ли какое-либо из выражений значение True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b

В предыдущем примере получаются результаты True, True и False соответственно.

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

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)

В предыдущем примере получаются результаты, равные 10, 14 и 14 соответственно.

См. также

Ссылки

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

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

Список операторов, сгруппированных по функциональному назначению (Visual Basic)

Оператор OrElse (Visual Basic)

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

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