Due to unknown "improvements", SeaMonkey's built-in news editor meanwhile ignores saved changes and sends long deleted text parts rather than thwe last seen text - "What you See Is _Not_ What You Get"...
This is the real reply to Skybuck's posting. Please ignore the mixture of deleted text parts, older and newer text posted at 10:58 h. Unfortunately, the option to remove messages from the server became the victim of another "improvement", so it is impossible for me to delete the other post. Bernhard Schornak Skybuck Flying wrote:
Because it's logical.
What is logical?
If the exit condition was placed on the top, the loop would exit immediatly.
This might be the programmer's intention?
Instead the desired behaviour might be to execute the code inside the loop first and then exit.
With a 50 percent chance it might not. Are we fortune tellers who guess which one might be true?
Thus seperating logic into enter and exit conditions makes sense.
Let us assume a loop with variable iterations where the iteration count is passed as function parameter. The code inside the loop body uses this iteration count as index into an array and alters data in other arrays depending on computations and set flags. If we probed the loop's repeat condition at the end of the loop body per default, we had to verify the passed iteration count before we enter the loop - otherwise, the program crashed with erroneously passed negative numbers. We also had to sort out zero. Otherwise, we started a count down through the full 32 or 64 bit range. The last problem pops up, if the loop's repeat condition isn't met. In this case, we had to restore all altered data before we could continue with the instructions following the loop body. Programming on machine language level grants us the freedom to create the fastest possible code. It is no good idea to slow down our code just to obey questionable "Universal Laws". BTW: I placed label 0 at the wrong place. The proper loop should look like this: func:... ... 0:dec rcx jbe 1f ... some code to perform ... jmp 0b p2align 5,,31 1:continue with something else ... Greetings from Augsburg Bernhard Schornak -- https://mail.python.org/mailman/listinfo/python-list