Aesthetically, I prefer the select. Visually, it's just more appealing to me and reads more clearly.

Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Craig Richards
Sent: Saturday, January 26, 2019 10:00 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: select vs. if-elseif

Interesting that a few folks apply SELECT or IF / ELSEIF for different

Personally I pretty much see them as identical and confess I probably use
them fairly randomly.

One technique I have used a fair bit is to utilise sub-procedures that
return booleans so that I can perform more complex checks but still return
FALSE and drop down to the next boolean test in the SELECT or IF / ELSEIF

On Sat, 26 Jan 2019 at 16:30, Joe Pluta <joepluta@xxxxxxxxxxxxxxxxx> wrote:

I have a similar approach to Birgitta. If in my mind I am thinking "this
is a condition where a small number of variables have specific states"
then I use a select. If it's a more complex set of business rules such
as "if it's a non-taxable customer, do A, else if we're in a special tax
facility do B, else if the item has special considerations do C" then I
go with an If/Elseif stack.

On 1/26/2019 5:25 AM, Birgitta Hauser wrote:
Even they are redundancy I use SELECT and IF/ELSEUF them "differently".

If I check different entries within the same variable(s), I use SELECT.

When FLDA = 'A';
When FLDB = 'B;


When FldX = 'A' and FldY = 'B';
When FldX = 'X' and FldY <> 'B'
When FldX <> 'A' and FldX <> 'X' and FldY = 'C'

If I have to check different conditions I use IF / ELSEIF. For examples:
If FLDA = 'X' and FLDB = 'Y';
ElseIF FLDC = 1;

(Param3 and Param2 are different fields)
If %Parms >= %ParmNum(Param3) and Param3 > '';
ElseIf %Parms >= %ParmNum(Param2) and Param2 > *Zeros;

... but these are only my private rules

This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives

Please contact support@xxxxxxxxxxxx for any subscription related

Help support by shopping at with our affiliate

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by 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].