|
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 mailing list archive is Copyright 1997-2025 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.