0

Interesting output in Java code. Why 103? X+x+100 a prioro can't be odd. I had predicted output 104, but not 103.

https://code.sololearn.com/cdGtnrawTpBN/?ref=app

30th Aug 2020, 12:32 PM
Oleg
Oleg - avatar
7 Answers
+ 3
Look at the loop definition, in there <x> is given value of 1. The loop condition says to repeat while <x> is less then 10. for(x = 1; x < 10; x++) In loop body, <x> value is incremented by its own value, plus 100. So in the first repetition ... x = 1 , initialized in loop definition. And then ... x = 1 + 1 + 100 , so by now <x> is 102 Next, the `x++` in the loop definition increment <x> by one, so after that is done, <x> will be 103. Then loop checks <x> value against the loop condition (x < 10). This time it sees that the condition is no longer true, meaning the loop should stop. And there you have it. <x> value be 103 after the loop completed.
30th Aug 2020, 12:57 PM
Ipang
+ 4
Oleg I didn't understand your last reply ...
30th Aug 2020, 2:17 PM
Ipang
+ 3
First x=1 In first loop: x<10 become true next for loop statements x=x+x+100 x=1+1+100 x=102 Next x value increment by for loop x++ => x=x+1 x=102+1=103 The second loop became false. Now print the value of x is 103.
30th Aug 2020, 12:43 PM
Vadivelan
+ 2
Am I right understand that x++ (incrementation in "For") occur even when !x<10 (or another words >10)?
30th Aug 2020, 1:34 PM
Oleg
Oleg - avatar
+ 2
Thanks Ipang. I stopped my car (I was on the road). Read carefully your description and I understand the logic.
30th Aug 2020, 2:36 PM
Oleg
Oleg - avatar
+ 2
Oleg Oh alright then, I'm glad if it helps 👌 Thanks Oleg ...
30th Aug 2020, 2:55 PM
Ipang
+ 1
first iteration x is 1 so x = x+x+100 evaluate to x = 1+1+100 x = 102. check for condition x<100; 102<10. false. evaluate increment inside for x++ > 102++ 103
30th Aug 2020, 12:45 PM
Rei
Rei - avatar