And 运算符 (Visual Basic)
对两个 Boolean
表达式执行逻辑与运算,或对两个数值表达式执行位与运算。
语法
result = expression1 And expression2
组成部分
result
必需。 任何 Boolean
或数值表达式。 对于布尔比较,result
是两个 Boolean
值的逻辑与。 对于位运算,result
是表示两个数值位模式的位与的数值。
expression1
必需。 任何 Boolean
或数值表达式。
expression2
必需。 任何 Boolean
或数值表达式。
注解
对于布尔比较,当且仅当 expression1
和 expression2
的计算结果均为 True
时,result
才为 True
。 下表说明了如何确定 result
。
如果 expression1 为 |
且 expression2 为 |
result 的值为 |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
注意
在布尔比较中,And
运算符始终计算这两个表达式,这可能包括进行过程调用。 AndAlso 运算符执行短路运算,这意味着如果 expression1
为 False
,则不计算 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
。 对于位比较,结果数据类型是适用于数据类型 expression1
和 expression2
的数值类型。 请参阅运算符结果的数据类型中的“关系比较和位比较”表。
注意
可重载 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
前面的示例分别生成结果 True
False
。
示例 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。