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