Last Updated on 13 September 2019 by Roberto De Pedrini
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:
- Midrange.com “IF_ELSEIF vs SELECT“
- Midrange.com “Select Vs If-elseif“
- RPGPGM.COM “Alternative to SELECT is ELSEIF“
Here we are for our “Frida-i Quick Poll” 01: SELECT vs ELSEIF ? Which side are you on?
---
Roberto De Pedrini
Faq400.com