VB.Net运算符优先级

运算符优先级决定表达式中术语的分组。这会影响表达式的评估方式。某些运算符的优先级高于其他运算符,则会被优先运算; 例如,乘法运算符比加法运算符具有更高的优先级:

例如,表达式:x = 7 + 3 * 2; 在这里,x被赋值为13,而不是20,因为运算符*的优先级高于+,所以它先乘以3 * 2,然后加上7,所以最后结果为:13

在这里,优先级最高的操作符出现在表顶部,最低优先级的操作符出现在底部。 在表达式中,更高优先级的运算符将首先被评估(计算)。

运算符 描述
Await 最高级
幂(^)
一元标识符和否定(+-)
乘法和浮点除法(*, /)
整数除(\)
模数运算(Mod)
算术位移(<<>>)
所有比较运算符(=<><<=>>=IsIsNotLikeTypeOf, ..., Is)
否定(Not)
连接(And, AndAlso)
包含分离(OR,OrElse)
异或(XOR)

示例

以下示例以简单的方式演示运算符优先级,文件:operators_precedence.vb -


Module operators_precedence
   Sub Main()
      Dim a As Integer = 20
      Dim b As Integer = 10
      Dim c As Integer = 15
      Dim d As Integer = 5
      Dim e As Integer
      e = (a + b) * c / d      ' ( 30 * 15 ) / 5
      Console.WriteLine("Value of (a + b) * c / d is : {0}", e)
      e = ((a + b) * c) / d    ' (30 * 15 ) / 5
      Console.WriteLine("Value of ((a + b) * c) / d is  : {0}", e)
      e = (a + b) * (c / d)   ' (30) * (15/5)
      Console.WriteLine("Value of (a + b) * (c / d) is  : {0}", e)
      e = a + (b * c) / d     '  20 + (150/5)
      Console.WriteLine("Value of a + (b * c) / d is  : {0}", e)
      Console.ReadLine()
   End Sub
End Module

执行上面示例代码,得到以下结果 -

F:\worksp\vb.net\operators>vbc operators_precedence.vb
F:\worksp\vb.net\operators>operators_precedence.exe
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is  : 90
Value of (a + b) * (c / d) is  : 90
Value of a + (b * c) / d is  : 50

上一篇: VB.Net运算符 下一篇: VB.Net决策结构