- 1

Can anyone please explain the logic (a+=b=b-=c=c*=d/=20) ?

public class Program { public static void main(String[] args) { int a,b,c,d; a=b=c=d=20; a+=b=b-=c=c*=d/=20; System.out.print(a+" "+b+" "+c+" "+d+" "); //Output -> 20 0 20 1 } }

13th Jan 2023, 6:55 PM
Kiruthik Kumar
Kiruthik Kumar - avatar
5 Answers
+ 4
Kiruthik Kumar BCA evaluate from right to left, since they are all assignment statements. All variables are initialized to the same value of 20. d/=20 divides d/20 and assigns 1 to d c*=d multiplies c*1 and stores 20 in c c=c no change b-=c subtracts b-20 and stores 0 in b b=b no change a+=b adds a+0 and stores 20 in a By this analysis you can see why it outputs 20 0 20 1
13th Jan 2023, 7:16 PM
Brian
Brian - avatar
+ 3
Kiruthik Kumar BCA d or d/20 is 20/20 = 1 c or c * 1 = 20 b or b-=20 is 20 minus 20 = 0 a or a+=0 is 20 + 0 = 20
13th Jan 2023, 7:15 PM
BroFar
BroFar - avatar
+ 2
a=b=c=d=20; a=20;b=20;c=20;d=20; ----------- d=d/20=1 c=c*d=20 b=b-c=0 a=a+b=20 a+=b=b-=c=c*=d/=20; Read from right to left .. System.out.print(a+" "+b+" "+c+" "+d+" "); //Output -> 20 0 20 1
13th Jan 2023, 7:16 PM
Smith Welder
Smith Welder - avatar
+ 2
Thanks BroFar , Brian , Smith Welder šŸ˜Š
14th Jan 2023, 9:25 AM
Kiruthik Kumar
Kiruthik Kumar - avatar
+ 1
a+= 20+0 = 20 b-= 20-20 = 0 c*1= 20 d/20 = 20/20 = 1 # 20 0 20 1 #
15th Jan 2023, 1:00 PM
Radoslav Aleksiev
Radoslav Aleksiev - avatar