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

VsCode Extention: Bob Cozzi’s RPG IV to RPG Free Conversion

👉 Review: Bob Cozzi’s RPG IV to RPG Free Conversion – a useful VS Code extension for RPG modernization If…

4 months ago

IBM i & SQL Tips #010 – Locating Programs in the Call Stack with STACK_INFO

Hello everyone, I’d like to highlight another excellent contribution by Massimo Duca, part of his ongoing IBM i & SQL…

4 months ago

Trying out “Display File DDS Edit” for VS Code

Intrigued by some recent posts from Cristian Larsen on LinkedIn (New Release – Display File DDS Edit v 0.10.1), I…

5 months ago

Project Bob: the next-gen AI partner for IBM i and IBM Z application development

Hello everyone, Today I’d like to draw your attention to a major new announcement from IBM: Project Bob — a…

5 months ago

IBM i & SQL Tips #6: Calling REST APIs and Parsing JSON Responses with SQL

I want to share with you a particularly useful article by Massimo Duca in the IBM i & SQL Tips…

5 months ago

How Parameter Passing Works in IBM i Programs (RPG / Cobol)

Hello everyone, I’d like to highlight a very useful article by Marco Riva on Markonetools, where he clearly explains how…

5 months ago