# Assignment operators

modules is divided remainder,but i cant understand why the output is 4?, modules 4 %= 2 is 0, modules 4 %= 4 also 0,so 0+0=0, why is 4? public class Program { public static void main(String[] args) { int num1 = 2; int num2 = 4; num2 %= num1 + num2; System.out.println(num2); } }

1/19/2019 2:54:48 PM

Rael6 Answers

New AnswerBecause num2 %= num1 + num2 is num2 = num2 % (num1 + num2) num1 + num2 = 2 + 4 is 6 4 div 6 is 0 with remainder 4 So 4 is stored in num2

Demo: https://code.sololearn.com/cFOrbbXjg2Hw/?ref=app If 9 div 2 remainder is 1 because the largest multiple of 2 smaller than 9 is 8 ( 2 times 4 ) If a smaller number is dividing a larger number, like as you calculated, resulting a decimal smaller than 1, means no multiple of the larger number is smaller than the smaller number. 6 x 1 is already larger than 4 So the largest multiple becomes 6 x 0 which is 0, and the whole 4 becomes the remainder. This is the same for any situation when a smaller number is dividing a larger number. Such as 2%5 8%300 100%10000, the true div result 0 and the remainder will be 2 8 100 respectively.

(A % B = r) because (A = B x q + r) note that (r > 0) r should be always positive!! exemples: (4 % 2 = 0) because (4 = 2 x 2 + 0) (4 % 3 = 1) because (4 = 3 x 1 + 1) (4 % 4 = 0) because (4 = 4 x 1 + 0) (4 % 5 = 4) because (4 = 5 x 0 + 4) we cant use 5 x 1 or higher because 5 x 1 + (- 1) and here we have r = - 1 and we say r positive thats way 5 x 0 is correct one. sorry for bad english 😔

Gordon i calculate using calculater 4divide 6 is 0.6666666666666 , i dont understand why is remainder 4?