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

SQL: SELECT with “superpowers”

With a little trick even a simple SELECT statement can execute any system command! Let's see how to do that...

5 months ago

NetServer for everyone – part 5

A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer

1 year ago

NetServer for everyone – part 4

A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer

1 year ago

NetServer for everyone – part 3

A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer

1 year ago

NetServer for everyone – part 2

A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer

1 year ago

NetServer for everyone – part 1

A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer

1 year ago