在计算表达式时,每个运算符都会按顺序处理。但这并不意味着从左至右地运用这些运算符。
例如,有下面的代码:
var1 = var2 + var3;
其中+运算符就是在=运算符之前进行计算的。在其它一些情况下,运算符的优先级并没有这么明显,例如:
var1 = var2 + var3 * var4;
其中*运算符先计算,其后是+运算符,最后是=运算符,这是标准的数学运算顺序,其结果与我们在纸上进行算术运算的结果相同。
像这样的计算,可以使用括号控制运算符的优先级,例如:
var1 = (var2 + var3) * var4;
括号中的内容先计算,即+运算符在*运算符之前计算。
对于前面介绍的运算符,其优先级如下表所示,优先级相同的运算符(如*和/)按照从左至右的顺序计算。
优 先 级 | 运 算 符 |
优先级由高到低 | ++, - - (用作前缀); +,-(一元) |
*, /, % | |
+,- | |
=, *=, /=, %=, +=,-= | |
++, - - (用作后缀) |
需要提醒的是括号可用于重写优先级顺序,如上所述。另外,++和- -用作后缀运算符时,在概念上其优先级最低,如上表所示。它们不对赋值表达式的结果产生影响,所以可以认为它们的优先级比所有其它运算符都高。但是,它们会在计算表达式后改变操作数的值,所以很容易认可它们在上表中的优先级。
本文为天轰穿原著,转载请注明出处及作者!