Re: how do people feel about exit function from loop



In some cases, though, you'll want variables altered inside the loop to be
in a known state on exiting the loop (for example, you know you want to be
at the end of a file, but also to flag a specific location/record within it)
and, as others have mentioned, to know HOW you hit the end of the loop.
Exit For and similar constructs become largely undesirable, involve more
coding and/or are less intuitive in cases like these.

Granted, cleanup code will be more likely to happen identically regardless
of how you exited the loop, but it's not guaranteed, depending on the
structure of your loop. If, for example, you're Setting an object to
something and then later to Nothing within the loop, the Exit For might
require a redundant Set to Nothing after the end of the loop.

But it's all esoteric anyway. Who cares how you do your loops or why you do
or don't use Exit's, as long as your loops work as desired and are
reasonably easy to understand. Any advanced programmer should be able to
look at a loop and determine in about two seconds how it works, regardless
of which structure is being used. It's like writing haiku's versus rhyming
verse...they're both poetry, it's just a difference of style.



Rob

"Michael C" <nospam@xxxxxxxxxx> wrote in message
news:OSmCwvlzHHA.464@xxxxxxxxxxxxxxxxxxxxxxx
"Robert Morley" <rmorley@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:uDBiXAlzHHA.312@xxxxxxxxxxxxxxxxxxxxxxx
But the same logic applies...if you're concerned about having one way out
of a function, it follows that you will likely be the type who also likes
one way out of a loop (for most of the same reasons), thus wanting to
avoid Exit.

Not really. The logic behind having one way out of a function is that you
can have cleanup code to release references etc (which has mostly been
eliminated with high level languages). For a loop there is no chance to
have cleanup code except after it, so the cleanup code will be called
anyway. The one-way-out is by going to the line of code after the loop.

In a language with try/catch/finally block this is all moot anyway because
you can have your exit function and have one way out, eg

Private Sub ABC()
dim rs as new recordset
rs.open "Blah"
Try
While not rs.eof
if rs!Something = SomethingElse then exit sub
rs.movenext
Wend
finally
rs.close
End Try

Michael



.



Relevant Pages

  • Re: Infinite Loops and Explicit Exits
    ... > CS> One of these proposals relaxes the current restriction that an EXIT ... > termination of the loop is not visible at that point. ... > terminating condition is visible in that context. ... > You now want to allow this remote procedure, ...
    (comp.lang.cobol)
  • Re: Houston-related rants was Re: forced merges/inside lane merges/AASHTO "tapered merges"
    ... >> Are you sure about the North Loop and I-45? ... >> in particular the westbound exit for Fondren/Gessner. ... How could HCTRA put an exit ramp for eastbound ... and the West Houston Center Blvd exit still shows Old Westheimer ...
    (misc.transport.road)
  • Re: Exit Do
    ... I've been instructed by a dot net / asp programmer that Exit Do is ... I am using nested loops and need to exit out of one loop into ... If Some Reason to stop loop then Exit Do ... Code Stage B ...
    (microsoft.public.scripting.vbscript)
  • Re: Exit Do
    ... I've been instructed by a dot net / asp programmer that Exit Do is ... I am using nested loops and need to exit out of one loop into ... Code Stage B ... likely to lead to bugs and readability problems. ...
    (microsoft.public.scripting.vbscript)
  • Re: Infinite Loops and Explicit Exits
    ... CS> There are cases in which EXIT PERFORM is, I think, clearer than GO TO ... procedure-name-1 SECTION. ... repetition in the main loop statement is being overrun by some minor ... particularly when the requirements of elegance ...
    (comp.lang.cobol)