Or 运算符 (Visual Basic)

对两个 Boolean 表达式执行逻辑析取,或对两个数值表达式执行位析取。

语法

result = expression1 Or expression2  

组成部分

result
必需。 任何 Boolean 或数值表达式。 对于 Boolean 比较,result 是两个 Boolean 值的包含逻辑析取。 对于位运算,result 是一个数值,该值表示两个数值位模式的包含位析取。

expression1
必需。 任何 Boolean 或数值表达式。

expression2
必需。 任何 Boolean 或数值表达式。

注解

对于 Boolean 比较,当且仅当 expression1expression2 的计算结果均为 False 时,result 才为 False。 下表说明了如何确定 result

如果 expression1 expression2 result 的值为
True True True
True False True
False True True
False False False

注意

Boolean 比较中,Or 运算符始终计算这两个表达式,这可能包括进行过程调用。 OrElse 运算符 执行短路运算,这意味着如果 expression1True,则不计算 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。 对于位比较,结果数据类型是适用于数据类型 expression1expression2 的数值类型。 请参阅运算符结果的数据类型中的“关系比较和位比较”表。

重载

可重载 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

前面的示例分别生成结果 TrueTrueFalse

示例 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。

请参阅