Categories: Poll

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

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

Recent Posts

Gestione dei file video bloccati su IBM i: una soluzione efficace

Riceviamo e pubblichiamo ben volentieri questo "tip & trick" di Patrick Rizzi che presenta una tecnica che permette di intervenire…

4 settimane ago

Monitoraggio Messaggi QSYSOPR: SQL per Ottenere Messaggi e Reply

Prendo spunto da una risposta di Michael Mayer sulle mailing list di Midrange.com a chi chiedeva come monitorare i messaggi…

4 settimane ago

Perché l’ERP è la Chiave del Successo per le Imprese Moderne

Le imprese sono sempre più alla ricerca di strumenti che possano migliorare l'efficienza, la collaborazione e la gestione delle risorse.…

3 mesi ago

ACS Access Client Solution 1.1.9.5

I primi di Aprile è uscita la "Spring Version" di ACS Access Client Solution, versione 1.1.9.5 Interessanti novità soprattutto in…

7 mesi ago

Tim Rowe and Scott Forstie – Promo video for CEC 2024 – Milan

Se non vi bastava la ricca agenda delle sessioni del Common Europe Congress 2024, 3-6 Giugno Milano, ecco un altro…

7 mesi ago

Code for IBM i 2.10.0 – Debug IBM i con Visual Studio Code

Le funzioni di debug con Visual Studio Code sono disponibili da qualche tempo ma questa nuova versione 2.10.0 semplifica la…

7 mesi ago