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




On 24/06/2008, at 4:05 AM, Jon Paris wrote:

But neither is RPG's form of SELECT either Joe. In fact it is one of
the reasons why I don't like the RPG implementation - the languages in
which I first met SELECT used the case form - and that is where my
"mental model" was formed I guess.

Subsequently I find I only use SELECT when using simple case
constructs and use IF/ELSEIF for those cases where the condition
changes.

In languages where ELSEIF is not supported ELSE followed by IF will
be. Not as elegant but ...

I guess we are all somewhat enslaved by our own particular mental
models.

I think this discussion is missing the major point of difference.

SELECT results in ONE test being selected and then code branches to the end of the SELECT.

SWITCH results in a STARTING point being selected and then the code falls through all subsequent CASE clauses unless a BREAK or LEAVE is encountered.

While there are occasional advantages to the SWITCH form most uses of it ALWAYS have a BREAK after the last statement in a CASE thus effectively making it a SELECT. Certainly in my teaching I have found students grasp the concept of a SELECT much easier than that of SWITCH.

Seems to me that most of you don't really want a SWITCH, you want a SELECT with the tested expression specified on the SELECT rather than on the WHEN.

Of course PL/1 supported a SELECT with both coding variants. Ahh, if only ...

SELECT ( expr );
WHEN ( test1 )
WHEN ( test2 )
OTHERWISE
END;

cf:
SELECT;
WHEN( expr1 )
WHEN( expr2 )
OTHERWISE
END;

Be nice if RPG supported the former construct. Easy enough to do with extended factor 2 and free-form.

Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists

http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------




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

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