Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Arithmetic Operators in Java (Beginner Question)

I know that array operators have the precedence. Then the binary arthimetic operators * , / , % . Then + and - which they are low precedence.

But I'm confused which one will java solve first in this example. And if we have 2 operators have the same priority, what operator will be used first in java?

Thank you.

int x = y = -2 + 5 * 7 - 7 / 2 % 5;

If someone could solve this for me and explain to me part by part. Because this always confuses me in exams.

like image 858
Mohammad Fadin Avatar asked May 08 '26 22:05

Mohammad Fadin


1 Answers

If operators have the same precedence then they are evaluated from left to right.

From the tutorial:

When operators of equal precedence appear in the same expression, a rule must govern which is evaluated first. All binary operators except for the assignment operators are evaluated from left to right; assignment operators are evaluated right to left.

In the expression, 7 / 2 % 5, the / and % have the same precedence, so going left to right 7 / 2 = 3 and 3 % 5 = 3.

The highest precedence is given to * / %. Here is the breakdown of your example:

  -2 + 5 * 7 - 7 / 2 % 5
= -2 + (5 * 7) - (7 / 2 % 5)
= -2 + 35 - (3 % 5)
= -2 + 35 - 3
= 30
like image 171
dogbane Avatar answered May 11 '26 16:05

dogbane