+ 3
Reassignment operators and post-increment
I'm toying with a timed JavaScript Challenge and want to make sure I understand this correctly. var x = 0; for(; x < 2; x++) { x += x - x++; } console.log(x); // Output is 2 1.) If x is less than 2, keep going. 2.) x += x(0) - x++(0), x now equals 0. 3.) Increment x by 1. 4.) x is less than 2, keep going. 5.) x += x(1) - x++(1), x now equals 1. 6.) Increment x by 1. 7.) x is not less than 2, exit out of the loop. Am I understanding this right?
7 Antworten
+ 2
1. You can add console log at beginning of for loop and end of for loop to check the change of variable in each iteration. Like this:
https://code.sololearn.com/W6Nf9QAk71xP/?ref=app
2. The increment of x++ in x += line is not effective because after it increments x, x is replaced by (original x+0)
+ 3
Gordon Thank you, that's interesting! I really appreciate it!
+ 3
In your new code,
The reason that your for loop run only once is because when you z = x++, x is already incremented by 1 after z is 0, so you can see in the iteration, pre x is 1 already.
The reason that post y and post z is 0 is, because they are assigned before for loop, y stores value of x which is 0, z also stores value of z which is 0.
And in the for loop, they are called as value, especially z, it is not behaving as x++ in the for loop.
Your original intention, if I have not misunderstand you, should be like this :
https://code.sololearn.com/Wz6Yu57Th04c/?ref=app
Notice the use anonymous function to execute the update of x every time when the function z is called.
+ 2
You are welcome, DumbledoresArmy.
Please allow me to emphasize the use of console log during the process of functions in debugging.
This is a demo I coded for another Q&A to explain how to find out bug.
https://code.sololearn.com/WuBzocc861ZK/?ref=app
By the way, I am a Harry Potter fans too
+ 2
I used console.log in my own test code but my specific question was if the math right of the equal sign was always equal to 0 or if something else was happening.
I'm not debugging because this is a challenge question I am trying to follow through.
https://code.sololearn.com/WnAsePgfjJBv/?ref=app
+ 2
Gordon, that's it, I'm naming my patronus after you! 😊
+ 2
🤣🤣🤣🤣🤣
Expecto Patroooonum! 🧙♂️