Poll

Frida-i Quick Poll: RPG IF-ELSEIF o SELECT-WHEN? (IT)

Last Updated on 13 Settembre 2019 by Roberto De Pedrini

E’ un argomento che compare sui gruppi di discussione IBM i (Midrange.com, Code400.com ecc) e tutte le volte è una “battaglia” tra chi preferisce IF-ELSEIF e chi invece predilige SELECT-WHEN … ognuno con i suoi motivi validi.

Iniziamo con il dire che IF-ELSEIF e SELECT-WHEN sono la stessa identica cosa da un punto del flusso di programma e delle prestazioni del codice stesso, quindi questi codici nei box che seguono arrivano allo stesso risultato:

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!…' '' var;
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;

Alla fine possiamo dire che il box di destra ha semplicemente una riga in più … quella con “select”! Ma da un punto di vista leggibilità e chiarezza del codice quale preferisci?

Io, personalmente, preferisco “SELECT – WHEN” … trovo il codice più leggibile… ma altri sviluppatori RPG preferiscono “IF-ELSEIF” … altri ancora utilizzano SELECT-WHEN quando la condizione si ripete sulla stessa variabile nei vari WHEN (come nel caso sopra) … e “IF-ELSEIF” quando la condizione cambia di volta in volta (esempio IF A=B … ELSEIF C=D AND E=F ….. ELSEIF G=X … ENDIF).

Riferimenti:

Eccoci quindi al sondaggio “Frida-i Quick Poll” 01: SELECT vs ELSEIF ? Da che parte stai?

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

--- Roberto De Pedrini Faq400.com
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *