|

In
the complex statement
x
= 5 + 3 * 8;
which
is performed first, the addition or the multiplication?
If the addition is performed first, the answer is
8 * 8, or 64. If the multiplication is performed
first, the answer is 5 + 24, or 29.
Every
operator has a precedence value, and the complete
list is shown in Appendix A, "Operator Precedence."
Multiplication has higher precedence than addition,
and thus the value of the expression is 29.
When
two mathematical operators have the same precedence,
they are performed in left-to-right order. Thus
x
= 5 + 3 + 8 * 9 + 6 * 4;
is
evaluated multiplication first, left to right. Thus,
8*9 = 72, and 6*4 = 24. Now the expression is essentially
x
= 5 + 3 + 72 + 24;
Now
the addition, left to right, is 5
+ 3 = 8; 8 + 72 = 80; 80 + 24 = 104.
Be
careful with this. Some operators, such as assignment,
are evaluated in right-to-left order! In any case,
what if the precedence order doesn’t meet your needs?
Consider the expression
TotalSeconds
= NumMinutesToThink + NumMinutesToType * 60
In
this expression, you do not want to multiply the
NumMinutesToType variable by 60 and then add it
to NumMinutesToThink. You want to add the two variables
to get the total number of minutes, and then you
want to multiply that number by 60 to get the total
seconds.
In
this case, you use parentheses to change the precedence
order. Items in parentheses are evaluated at a higher
precedence than any of the mathematical operators.
Thus
TotalSeconds
= (NumMinutesToThink + NumMinutesToType) * 60
will
accomplish what you want.
|