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