VB.Net - 运算符优先级



运算符优先级决定了表达式中项的组合方式。这会影响表达式的计算方式。某些运算符比其他运算符具有更高的优先级;例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2; 这里,x 被赋值为 13,而不是 20,因为运算符 * 的优先级高于 +,所以它首先计算 3*2,然后加上 7。

这里,优先级最高的运算符出现在表的最上面,优先级最低的出现在最下面。在一个表达式中,优先级更高的运算符将首先被计算。

运算符 优先级
Await 最高
指数运算 (^)
一元标识和否定 (+, -)
乘法和浮点除法 (*, /)
整数除法 (\)
取模运算 (Mod)
加法和减法 (+, -)
算术位移 (<<, >>)
所有比较运算符 (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is)
否定 (Not)
连接 (And, AndAlso)
包含或 (Or, OrElse)
异或 (Xor) 最低

示例

以下示例以简单的方式演示了运算符优先级:

Module assignment
   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

当以上代码编译并执行时,会产生以下结果:

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_operators.htm
广告