In this article we will understand why x=x*y/z
is not equal to x*=y/z
if variables are integers using java code example.
Reason
Let’s understand through mathematics –
Suppose, x = 5, y = 7, z = 3
1. If we use this equation – x = x * y / z then,
x = 5 * 7 / 3 = 35 / 3 = 11 (because we are dealing with integer variables).
2. If we use this format – x *= y / z then,
x *= 7 / 3
x *= 2
x = x * 2 = 5 * 2 = 10
So you can see that both results are different and this is due to neglection of remainder by division of integers. (x * y) / z != x * (y / z)
Code Example
public class MyClass { public static void main(String args[]) { int x = 5; int y = 7; int z = 3; x = x * y / z; System.out.println("x = x * y / z; x = " + x); x = 5; x *= y / z; System.out.println("x *= y / z; x = " + x); } }
Output –
x = x * y / z; x = 11 x *= y / z; x = 10