And 运算符 (Visual Basic)

对两个 Boolean 表达式执行逻辑与运算,或对两个数值表达式执行位与运算。

语法

result = expression1 And expression2  

组成部分

result
必需。 任何 Boolean 或数值表达式。 对于布尔比较,result 是两个 Boolean 值的逻辑与。 对于位运算,result 是表示两个数值位模式的位与的数值。

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

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

注解

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

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

注意

在布尔比较中,And 运算符始终计算这两个表达式,这可能包括进行过程调用。 AndAlso 运算符执行短路运算,这意味着如果 expression1False,则不计算 expression2

如果应用于数值,And 运算符对两个数值表达式中位置相同的位进行位比较,并根据下表设置 result 中的相应位。

expression1 中的 If 位为 并且 expression2 中的位为 result 中的位为
1 1 1
1 0 0
0 1 0
0 0 0

注意

由于逻辑运算符和位运算符的优先级低于其他算术运算符和关系运算符,因此任何位运算都应括在括号中以确保结果准确。

数据类型

如果操作数由一个 Boolean 表达式和一个数值表达式组成,则 Visual Basic 会将 Boolean 表达式转换为数值(-1 表示 True,0 表示 False)并执行位运算。

对于布尔比较,结果的数据类型为 Boolean。 对于位比较,结果数据类型是适用于数据类型 expression1expression2 的数值类型。 请参阅运算符结果的数据类型中的“关系比较和位比较”表。

注意

可重载 And 运算符,这意味着当操作数具有某一类或结构时,该类或结构可重新定义其行为。 如果你的代码在这种类或结构上使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 Operator Procedures

示例 1

以下示例使用 And 运算符对两个表达式执行逻辑与运算。 结果是一个 Boolean 值,该值表示两个表达式是否均为 True

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

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

示例 2

以下示例使用 And 运算符对两个数值表达式的各个位执行逻辑与运算。 如果操作数中的相应位都设置为 1,则设置结果模式中的位。

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

前面的示例分别生成结果 8、2 和 0。

请参阅