在一个表达式中进行多个运算时,每一部分都会按预先确定的顺序进行计算求解,这个顺序被称为运算符优先级。括号可改变优先级的顺序,强制优先处理表达式的某部分。括号内的操作总是比括号外的操作先被执行。但是在括号内,仍保持正常的运算符优先级。
当表达式有多种运算符时,先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。所有比较运算符有相同的优先级,即按它们出现的顺序从左到右进行处理。算术运算符和逻辑运算符按下列优先级进行处理:
算术 | 比较 | 逻辑 |
---|---|---|
指数运算 (^) | 相等 (=) | Not |
负数 (-) | 不等 (<>) | And |
乘法和除法 (*, /) | 小于 (<) | Or |
整除 (\) | 大于 (>) | Xor |
求余运算 (Mod) | 小于或等于 (<=) | Eqv |
加法和减法 (+, -) | 大于或等于 (>=) | Imp |
字符串连接 (&) | Is | & |
当乘法和除法同时出现在表达式中时,按照从左到右出现的顺序处理每个运算符。同样,当加法和减法同时出现在表达式中时,也按照从左到右出现的顺序处理每个运算符。
字符串连接运算符 (&) 不是算术运算符,但是就其优先级而言,它在所有算术运算符之后,而在所有比较运算符之前。Is 运算符是对象引用的比较运算符,它并不比较对象或对象的值,而只判断两个对象引用是否引用了相同的对象。