运算符优先级决定表达式中术语的分组。这会影响表达式的评估方式。某些运算符的优先级高于其他运算符,则会被优先运算; 例如,乘法运算符比加法运算符具有更高的优先级:
例如,表达式:x = 7 + 3 * 2
; 在这里,x
被赋值为13
,而不是20
,因为运算符*
的优先级高于+
,所以它先乘以3 * 2
,然后加上7
,所以最后结果为:13
。
在这里,优先级最高的操作符出现在表顶部,最低优先级的操作符出现在底部。 在表达式中,更高优先级的运算符将首先被评估(计算)。
运算符 | 描述 |
---|---|
Await |
最高级 |
幂(^ ) |
|
一元标识符和否定(+ ,- ) |
|
乘法和浮点除法(* , / ) |
|
整数除(\ ) |
|
模数运算(Mod ) |
|
算术位移(<< ,>> ) |
|
所有比较运算符(= ,<> ,< ,<= ,> ,>= ,Is ,IsNot ,Like ,TypeOf , ... , 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决策结构