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

