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



To me, with RPG free IBM was giving us tough love.

You shouldn't be using MOVE to change date formats and you shouldn't be
using GOTO or CABxx (for the reasons Rob describes) so IBM decided in
RPG free you wouldn't be able to use them, even if you wanted to.

IBM are just doing their bit to make us better programmers :-)

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Robert Rogerson
Sent: Monday, September 10, 2012 8:14 AM
To: RPG programming on the IBM i / System i
Subject: Re: GOTO in free form!


Hi Dave,

With the opcodes you mentioned you know where the control passes
after the
statement executes. (The end of a loop with Iter, out of the loop
with
leave,...).
But with a GOTO the next statement can be almost any where. There
isn't
even a restriction that a GOTO must be within the same subroutine.

I have seen GOTO used (to me) logically and as a matter of fact I
think it
was in a validation routine as well, but my opinion is that the rules
for
a GOTO are too unrestrictive and programmers do take advantage of
this.
Put in a quick fix with a GOTO, disregard program logic and add a
GOTO to
circumvent the logic, etc.

IMHO GOTO opens the door to spaghetti code and as you mentioned
usually is
used to bypass well thought out logic.

Rob
On 2012-09-10 7:18 AM, Dave wrote:

Found this in an rpg program :


A programme reads a primary file then does :

/free

if ..; //error detected
doErrorstuff;


/END-FREE
C GOTO FIN
/FREE

endif;

/end-free

The same is repeated wherever an error may occur.

What's wrong with this, apart from being ugly code? I was told that a
GOTO indicates poor analysis.

What's different with using a DO loop with ITER or LEAVE, a SUBR with
LEAVESR?

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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 copyright@midrange.com.

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