× 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.



Buck,

You're right about breaking down the monolith to avoid the return code
being changed inadvertently.

But, I've broken down the monolith to use many subroutines (No, I am not
subprocedure shy - trust me, I use them.).  In these particular subroutines
I may use LeaveSr. Much like a subprocedure many have multiple Return
values

If divisor=0
  Return 'Invalid Number!'
Else
  Return 'Your value is ' + %editc(MyNumber/Divisor:'J')
EndIf

Not only is a Return for returning values - but it may be used as an
'improper' control structure (In some people's opinion.).


Rob Berendt

==================
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
Benjamin Franklin



                    Buck Calabro
                    <Buck.Calabro@com       To:     rpg400-l@midrange.com
                    msoft.net>              cc:
                    Sent by:                Fax to:
                    rpg400-l-admin@mi       Subject:     RE: Why is LEAVE bad? 
(was: Cycle Processing vs. Doing it my
                    drange.com               way)


                    12/06/2001 03:17
                    PM
                    Please respond to
                    rpg400-l






>And the only problem with setting a return code
>and exiting at the bottom is that you have to
>scan every line of code to be sure you don't
>accidentally change the return code before
>returning.

Oh, I don't know... (a lot!)  If I mis-set a return code a simple editor
search will turn the culprit up.  Doing a search on LEAVE will turn a lot
more suspects.  This is really just a theoretical discussion.  In practise,
if a block of code is big enough to require multiple return codes or
multiple exit points, it's probably not structured very well anyway.  There
are well-known reasons for allowing this sort of code; edit checking a
screen-load of input data is one.

You've ably demonstrated that there are indeed places where the thoughtful
programmer might use leave.  I've been finding that my old style of coding
would result in commingling of code blocks; sequences that work better as
their own function.  When I write using many small functions, I find that I
have fewer and fewer reasons for leave, because my code blocks do one thing
and one thing only.  Leave now seems to me like a semicolon in a run-on
sentence.

Thanks for the discussion!
  --buck
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.







As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.