Visual Basic 逻辑运算符

逻辑运算符,它把语句连接成更复杂的复杂语句。

逻辑运算符包括,逻辑 NOT,逻辑 AND,逻辑 OR 等。

优先级为:NOT AND OR 同级运算从左到右。

下表显示了 VB 支持的所有逻辑运算符。假设变量 A = True,变量 B = False,则

运算符描述说明
And它是逻辑运算符,也是按位运算符。如果两个操作数都是:True,则条件成立。 该运算符不执行短路,即它评估两个表达式的值。(A And B)结果为:False
Or它是逻辑以及按位或运算符。如果两个操作数中的任何一个为 True,则条件成立。 该运算符不执行短路,即它评估两个表达式。(A Or B)结果为:True
Not它是逻辑,也是按位运算符。用于反转其操作数的逻辑状态。如果条件成立,那么逻辑非运算符结果为:False。Not(A And B)结果为:True
Xor它是逻辑,也是按位的逻辑异或运算符。 如果两个表达式均为 True 或两个表达式均为 False,则返回 True; 否则返回 False。 该运算符不执行短路,它总是评估这两个表达式,并且没有短路对应。A Xor B结果为:True
AndAlso这是逻辑 AND 运算符,它只适用于布尔数据,并可执行短路。(A AndAlso B)结果为:False
OrElse这是合乎逻辑的OR运算符,它只适用于布尔数据,并可执行短路。(A OrElse B)结果为:True
IsFalse它确定一个表达式是否为 False
IsTrue它确定一个表达式是否为 True

实例

尝试下面的例子来理解 VB 中可用的所有逻辑/位运算符:

  1. Module logicalOp
  2. Sub Main()
  3. Dim a As Boolean = True
  4. Dim b As Boolean = True
  5. Dim c As Integer = 5
  6. Dim d As Integer = 20
  7. 'logical And, Or and Xor Checking
  8. If (a And b) Then
  9. Console.WriteLine("Line 1 - Condition is true")
  10. End If
  11. If (a Or b) Then
  12. Console.WriteLine("Line 2 - Condition is true")
  13. End If
  14. If (a Xor b) Then
  15. Console.WriteLine("Line 3 - Condition is true")
  16. End If
  17. 'bitwise And, Or and Xor Checking'
  18. If (c And d) Then
  19. Console.WriteLine("Line 4 - Condition is true")
  20. End If
  21. If (c Or d) Then
  22. Console.WriteLine("Line 5 - Condition is true")
  23. End If
  24. If (c Or d) Then
  25. Console.WriteLine("Line 6 - Condition is true")
  26. End If
  27. 'Only logical operators
  28. If (a AndAlso b) Then
  29. Console.WriteLine("Line 7 - Condition is true")
  30. End If
  31. If (a OrElse b) Then
  32. Console.WriteLine("Line 8 - Condition is true")
  33. End If
  34. ' lets change the value of a and b '
  35. a = False
  36. b = True
  37. If (a And b) Then
  38. Console.WriteLine("Line 9 - Condition is true")
  39. Else
  40. Console.WriteLine("Line 9 - Condition is not true")
  41. End If
  42. If (Not (a And b)) Then
  43. Console.WriteLine("Line 10 - Condition is true")
  44. End If
  45. Console.ReadLine()
  46. End Sub
  47. End Module

结果如下:

  1. Line 1 - Condition is true
  2. Line 2 - Condition is true
  3. Line 4 - Condition is true
  4. Line 5 - Condition is true
  5. Line 6 - Condition is true
  6. Line 7 - Condition is true
  7. Line 8 - Condition is true
  8. Line 9 - Condition is not true

分类导航