× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks for that endorsement Hans.  despite thier seeming kinship to goto's,
I love 'leave' and 'iter'.  They make my job so much easier.

I hate complicated and nested compound if/else/ constructs.  They are
confusing and prone to error.

My typical exfmt loops look much like this seudo code - the nesting never
exceeds 1 level past the do loop, and it's obvious what happens under each
condition.

I'm either going to go directly to the top of the do loop, exit the do
loop, or continue with the next executable inside the do loop.  No setting
of intermediate variables, no checking-again of variables I've already
checked once.

(also, note my never-ending-loop of choice ;)

begsr

dow 1=1
  exfmt screen

  select
  when *inkc
    eval *inlr = *on
    return
  when *inkl
    leave
  when *inkd
    exsr prompt
    iter
  when oneThing
    exsr DoOneThing
    leave
  when anotherThing
    exsr doAnotherThing
    iter
  when somethingElse
    exsr doSomethingElse
  other
    exsr doTheOtherthing
  endsl

  exsr editscreen

  if errors
    iter
  end

  exsr updatefilefromscreen

  if not stayingHere
    leave
  end

enddo

endsr

----Original message-----------
<snip>there's absolutely nothing wrong with LEAVE and ITER. Even if you
subscribe to the tenets of "structured programming", when using LEAVE or
ITER, your loop still has a single entry and a single exit. By
explicitly exiting a construct early, you can often avoid additional
levels of nesting.

Cheers! Hans



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.