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



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

Follow-Ups:
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 [javascript protected email address].

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