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

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

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…

11 mesi ago

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…

11 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

11 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

11 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

12 mesi ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

12 mesi ago