 Explain me this code please. | SoloLearn: Learn to code for FREE!

+6

# Explain me this code please.

int a=0, b=0; while(a<3) { ++a; a*=a; b+=a; } Console.Write(b);

+8

while loop runs till a's value is less than 3 ++a increases value of a Now a is 1 a*=a means a=a*a which is a=1 and then b+=a is b=b+a b=0+1 b=1 again ++a a=2 now a*=a a=2*2 a=4 b=1+4 b=5 now since a is 4 and greater than 3 Loop terminates and 5 is printed

+3

Abhay And what will be the result if there will be a++ instead of ++a, 0?

+3

I thought i knew the difference between ++i and i++ but i guess not. Well, i need to read and practice more, thanks a lot friend

+3

Thanks a lot i will keep on trying :)

+2

hello, if you alter the code and write a++ it would not affect the output which is (5) a++ and ++a will only differ when you will assign them to a variable thanks!

+1

It will be same ,it doesn't matter here if you increase it's value before or after however if that was something like b=++a then b value would be 1 and a also 1 and If it was b=a++ then b value would be 0 and a also 0 Then a would get incremented immediately after that and a will be 1

+1

while(a<3) is used to run till the value of a will be less than 3. Initially a=0, b=0 In the first iteration 0 < 3 is satisfied It first checks the condition of the while loop, if it is satisfied it will enter the loop and perform the following steps 1) ++a which is used to increment the value of a (a++ returns the value after it is incremented, while ++a returns the value before it is incremented. There will be no change in this particular code.) So value of a becomes 1 2) a*=a -> a = a * a -> a = 1 * 1 -> a = 1 3) b+=a -> b = b + a -> b = 0 + 1 -> b = 1 In the next iteration, it checks if 1 < 3 which is satisfied. It performs the following steps again 1) ++a Value of a becomes 2 2) a*=a -> a = a * a -> a = 2 * 2 -> a = 4 3) b+=a -> b = b + a -> b = 1 + 4 -> b = 5 Next iteration the condition a < 3 fails as a = 4 Therefore it comes out of the loop and prints the value of b which is 5. I hope this was of some help!

0