Precedence rules govern the order in which an expression is solved. For example:
2 + 3 * 6 -> 20 |
the * operator has priority over +. |
-
Associativity refers to the order in which operators are applied if they have the same precedence level. The two possibilities are from left-to-right or right-to-left.
-
A unary operator is used on only one number. An example of a unary operator is the negative sign in the expression -a, meaning the negative of a.
The following table summarizes precedence and associativity of math operators:
Level of Precedence |
Operator |
Associativity |
|
|
|
Highest |
unary - |
right to left |
|
* / %
|
left to right |
Lowest |
+ -
|
left to right |
An example follows:
9 + 16 / 3 * 7 % 8 - 5
|
(solve / first) |
9 + 5 * 7 % 8 - 5
|
(solve * second) |
9 + 35 % 8 - 5
|
(solve % next) |
9 + 3 - 5
|
(solve left-to-right) |
7
|
|
Parentheses take priority over all the math operators.
(5+6)/(9-7) -> 11/2 -> 5
(integer division, which drops remainders, is used here)