Or 运算符 (Visual Basic)
对两个 Boolean
表达式执行逻辑析取,或对两个数值表达式执行位析取。
语法
result = expression1 Or expression2
组成部分
result
必需。 任何 Boolean
或数值表达式。 对于 Boolean
比较,result
是两个 Boolean
值的包含逻辑析取。 对于位运算,result
是一个数值,该值表示两个数值位模式的包含位析取。
expression1
必需。 任何 Boolean
或数值表达式。
expression2
必需。 任何 Boolean
或数值表达式。
注解
对于 Boolean
比较,当且仅当 expression1
和 expression2
的计算结果均为 False
时,result
才为 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 表示 True
,0 表示 False
)并执行位运算。
对于 Boolean
比较,结果的数据类型为 Boolean
。 对于位比较,结果数据类型是适用于数据类型 expression1
和 expression2
的数值类型。 请参阅运算符结果的数据类型中的“关系比较和位比较”表。
重载
可重载 Or
运算符,这意味着当操作数具有某一类或结构时,该类或结构可重新定义其行为。 如果你的代码在这种类或结构上使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 Operator Procedures。
示例 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。