对两 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 运算符执行短路,这意味着如果是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 for True
和 0 表示 False
),并执行按位运算。
Boolean
为了进行比较,结果的数据类型为 Boolean
. 为了进行按位比较,结果数据类型是适合数据类型和expression1
数据类型的expression2
数值类型。 请参阅 运算符结果数据类型中的“关系和按位比较”表。
重载
Or
可以重载运算符,这意味着当作数具有该类或结构的类型时,类或结构可以重新定义其行为。 如果代码对此类或结构使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 运算符过程。
示例 1
以下示例使用 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
结果。
示例 2
以下示例使用 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 的结果。