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

Reply via email to