Categories: Poll (EN)

Frida-i Quick Poll: RPG IF-ELSEIF or SELECT-WHEN? (EN)

IF_ELSEIF or SELECT_WHEN? It’s a battle from RPGers on different forums… who like IF_ELSEIF and who like SELECT_WHEN to control flow on multiple conditions.

Let’s start by saying that IF-ELSEIF and SELECT-WHEN are the exact same thing from a point in the program flow and the performance of the code itself, so these following two pieces of code do exactly the same thing:

if YourAge<30;

    dsply 'Oh, you are very young!' 'inp;

 elseif YourAge<40;

    dsply 'You are young!' 'inp;

 elseif YourAge<50;

    dsply 'OK you are still young!' 'inp;

 elseif YourAge<60;

    dsply 'Oh, you were young once!' 'inp;

else;

    dsply 'Oh yeah, it's RPG!...' 'inp;

 ENDIF;           

select;

 when YourAge<30;

    dsply 'Oh, you are very young!' 'inp;

 when YourAge<40;

     dsply 'You are young!' 'inp;

 when YourAge<50;

     dsply 'OK you are still young!' 'inp;

 when YourAge<60;

   dsply 'Oh, you were young once!' 'inp;

 Other;

    dsply 'Oh yeah, it's RPG!...' 'var;

 ENDsl;   

As you can see the two parts of code do the same and identical thing … the difference is an “extra line” … “select;” in the right box.

I, personally, prefer “SELECT – WHEN” … I find the most readable code … but other RPG developers like “IF-ELSEIF” … others still use SELECT-WHEN when the condition repeats on the same variable in the various WHEN (as in the case above) … and “IF-ELSEIF” when the condition changes from time to time (example IF A-B … ELSEIF C-D AND E-F ….. ELSEIF G-X … ENDIF).

References:

Here we are for our “Frida-i Quick Poll” 01: SELECT vs ELSEIF ? Which side are you on?

Related Posts
DB2 for i SQL – String Manipulation – POSSTR-LOCATE-LOCATE_IN_STRING (EN)

Introduction Often, in our applications, we need to work with text strings, and DB2 SQL can come in very useful Read more

DB2 for i – FAQ & Howtos (EN)

DB2 Database and SQL ... maybe the most important things on IBM i platform: here's a collection of FAQs, tips Read more

IBM i 7.4 Announcement (En)

Comes directly with the Easter egg this IBM announcement for the news of the IBM i 7.4 version, iNext version Read more

Generated Always Columns (EN)

Introduction "Generated Always Column": are columns, table fields, filled by DB2 engine: something like columns with a default value but Read more

--- Roberto De Pedrini Faq400.com

Recent Posts

Managing Locked Display Files on IBM i: An Effective Solution

We are pleased to receive and share this "tip & trick" from Patrick Rizzi, which introduces a technique that allows…

4 weeks ago

Monitoring QSYSOPR Messages: SQL to Retrieve Messages and Replies

I take inspiration from a response by Michael Mayer on the Midrange.com mailing lists to someone who asked how to…

4 weeks ago

Why ERP is the Key to Success for Modern Businesses

Businesses are increasingly seeking tools to enhance efficiency, collaboration, and resource management. Enterprise Resource Planning (ERP) systems provide a comprehensive…

3 months ago

ACS Access Client Solution 1.1.9.5

Early April saw the release of the "Spring Version" of ACS Access Client Solution, version 1.1.9.5 Interesting new features especially…

7 months ago

Tim Rowe and Scott Forstie for CEC 2024 – Milan

If the packed agenda of sessions at Common Europe Congress 2024, June 3-6 Milan, wasn't enough for you, here's another…

7 months ago

Code for IBM i 2.10.0 – Debug IBM i App with Visual Studio Code

Debugging functions with Visual Studio Code have been available for some time but this new version 2.10.0 simplifies the handling…

7 months ago