|
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Joe Pluta
Sent: Monday, June 23, 2008 12:23 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: Advantages of RPG
Doug Palme wrote:
your statement of "perhaps the bestNot a correction so much as a clarification. Most implementation of
implementation ever..." are you referring to the SELECT statement
specifically or the group as a whole? The reason I ask is that
SELECT-ENDSL is the same as SELECT CASE-END SELECT is it not?
If I am off the mark on this, please feel free to correct me.
CASE logic have actually been variations on the SWITCH statement. The
concept of a switch is that you have a single variable, and then you
execute logic based on the contents of that variable.
switch (a) {
case 1: doSomething1();
break;
case 2: doSomething2();
break;
default;
doSomethingElse();
}
SELECT on the other hand was much more a derivation of the old CASE
construct in RPG, where you could compare any two variables. And in
RPG, a combination of SELECT and procedures is incredible:
SELECT;
// Opcodes 01 and 02 don't need authorization
WHEN OPCODE = '01';
DoOpcode1();
WHEN OPCODE = '02';
DoOpcode1();
// Opcode 10 needs authorization
WHEN not Authorized();
SendError('Not Authorized');
WHEN OPCODE = '10';
DoOpcode10();
// Bad opcode
OTHER;
SendError('Bad Opcode');
ENDSL;
The code above is just stunningly simple for client/server programming.
I used this all throughout the RSDC Scheduler application and I was able
to create new servers in minutes. The fact that the WHEN can be as
complex as you need it, or even execute a subprocedure (which in turn
could call another program!) makes this one of the very best opcodes
ever designed for procedural logic.
Joe
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
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 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.