在一个表达式中进行若干操作时,每一部分都会按预先确定的顺序进行计算求解,称这个顺序为运算符的优先顺序。优先级越高,越优先计算;相同级别运算符之间,又按照运算符的结合性运算,即从左到右,还是右到左。
当表达式包含不止一种运算符时,则按照下列规则对其进行计算:
(1)、算术运算符的优先级在下面列出,它们的优先级高于串联运算符、比较运算符、逻辑/按位运算符、赋值运算符。
(2)、串联运算符的优先级在下面列出,它的优先级高于比较运算符、逻辑/按位运算符、赋值运算符,但低于算术运算符。
(3)、比较运算符的优先级高于逻辑/按位运算符、赋值运算符,但低于算术运算符和串联运算符。
(4)、逻辑/按位运算符的优先级在下面列出,它们的优先级高于赋值运算符,但低于算术运算符、串联运算符和比较运算符。
(5)、赋值运算符的优先性最低。
1、算术运算符的优先顺序如下:
^
–(负数)
*、 /
\
Mod
+、–(加法和减法)
当乘法和除法同时出现在表达式中时,每个运算都按照它们从左到右出现的顺序进行计算。当乘法和除法同时出现在表达式中时,每个运算也都按照它们从左到右出现的顺序进行计算。可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。但是,在括号之内,运算符的优先顺序不变。
总结:算术运算符的优先顺序由上至下,优先性降低;同一行的优先性相同,按照从左到右结合性进行运算。
2、串联运算符的优先顺序如下:
+(字符串连接)
&(字符串连接)
字符串的连接有两种:一种为“&”运算符,另一种则为“+” 运算符。
(1)、“&”连接运算符用于强制将两个表达式作为字符串连接,重点是强制,即使有一边为字符串,一边为数字类型都可以。
参考如下:
Label1.Caption="abc" & 123 ="abc123"
(2)、“+”连接运算符,有两中用途:如果两边都为数字类型,则进行运算;如果两边都为字符串类型,则进行连接。
参考如下:
Lable1.Caption=520+1351 结果为1871
Label1.Caption = "http://www." + "cnblogs.com/" + "5201351"
结果则为http://www.5201351.com/5201351
总结:两种串联运算符的优先顺序相同,按它们出现的顺序从左到右进行运算。
3、比较运算符的优先顺序如下:
=、<>、<、<=、>、>=、Like、Is
Like 的优先顺序与所有比较运算符都相同,实际上是模式匹配运算符。
Is 运算符是对象引用的比较运算符。它并不将对象或对象的值进行比较,而只确定两个对象引用是否参照了相同的对象。
总结:所有比较运算符的优先顺序相同,按它们出现的顺序从左到右进行运算。
4、逻辑/按位运算符的优先顺序如下:
Not
And
Or
Xor
Eqv
Imp
因为这几种运算符,即可以逻辑运算,又可以进行位运算,因此,它们的种类是逻辑/按位运算符。
总结:逻辑运算符的优先顺序由上至下,优先性降低。Not为单目运算符,按照从右到左结合性进行运算;其余五个为双目运算符,按照从左到右结合性进行运算。
5、赋值运算符
赋值运算符“=”,用来对变量赋值,按照从右到左结合性进行运算。
注意:运算符“=”既可以作比较运算符,又可以作赋值运算符。
总结:赋值运算符的优先性最低。
浙公网安备 33010602011771号