Or Operator (Visual Basic)
Performs a logical disjunction on two Boolean
expressions, or a bitwise disjunction on two numeric expressions.
Syntax
result = expression1 Or expression2
Parts
result
Required. Any Boolean
or numeric expression. For Boolean
comparison, result
is the inclusive logical disjunction of two Boolean
values. For bitwise operations, result
is a numeric value representing the inclusive bitwise disjunction of two numeric bit patterns.
expression1
Required. Any Boolean
or numeric expression.
expression2
Required. Any Boolean
or numeric expression.
Remarks
For Boolean
comparison, result
is False
if and only if both expression1
and expression2
evaluate to False
. The following table illustrates how result
is determined.
If expression1 is |
And expression2 is |
The value of result is |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Note
In a Boolean
comparison, the Or
operator always evaluates both expressions, which could include making procedure calls. The OrElse Operator performs short-circuiting, which means that if expression1
is True
, then expression2
is not evaluated.
For bitwise operations, the Or
operator performs a bitwise comparison of identically positioned bits in two numeric expressions and sets the corresponding bit in result
according to the following table.
If bit in expression1 is |
And bit in expression2 is |
The bit in result is |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Note
Since the logical and bitwise operators have a lower precedence than other arithmetic and relational operators, any bitwise operations should be enclosed in parentheses to ensure accurate execution.
Data Types
If the operands consist of one Boolean
expression and one numeric expression, Visual Basic converts the Boolean
expression to a numeric value (–1 for True
and 0 for False
) and performs a bitwise operation.
For a Boolean
comparison, the data type of the result is Boolean
. For a bitwise comparison, the result data type is a numeric type appropriate for the data types of expression1
and expression2
. See the "Relational and Bitwise Comparisons" table in Data Types of Operator Results.
Overloading
The Or
operator can be overloaded, which means that a class or structure can redefine its behavior when an operand has the type of that class or structure. If your code uses this operator on such a class or structure, be sure you understand its redefined behavior. For more information, see Operator Procedures.
Example 1
The following example uses the Or
operator to perform an inclusive logical disjunction on two expressions. The result is a Boolean
value that represents whether either of the two expressions is 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
The preceding example produces results of True
, True
, and False
, respectively.
Example 2
The following example uses the Or
operator to perform inclusive logical disjunction on the individual bits of two numeric expressions. The bit in the result pattern is set if either of the corresponding bits in the operands is set to 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)
The preceding example produces results of 10, 14, and 14, respectively.