Blocchi di codice FOR e SWITCH
copia linkBlocco di codice FOR
E' ora possibile aggiungere blocchi di codice FOR e SWITCH/CASE. Per farlo è sufficiente, su una riga vuota del Visual Code Editor, scrivere FOR o SWITCH. Selezionando la voce giusta Instant Developer inserirà alla posizione corrente il corrispondente blocco di codice:

Aggiunta di un nuovo blocco FOR.
Il blocco FOR è diverso dal blocco FOR EACH già esistente in quanto quest'ultimo era pensato per eseguire cicli su una query, su un pannello o su una collection. Il nuovo ciclo, invece, equivale al ciclo for disponibile nei linguaggi di programmazione evoluti:

Ciclo FOR.
Come mostrato nella figura precedente il ciclo FOR prevede 3 espressioni opzionali:
- La prima rappresenta l'espressione di inizializzazione e viene eseguita ad inizio ciclo.
- La seconda espressione è la condizione di terminazione ed è un'espressione booleana che deve restituire il valore False quando il ciclo For deve terminare.
- La terza è l'espressione di incremento e viene eseguita alla fine di ogni ciclo.

Ciclo FOR sulla variabile i.
Blocco di codice SWITCH
Il blocco di codice SWITCH permette di valutare un'espressione e a seconda del valore restituito eseguire una o più istruzioni. Il blocco SWITCH si presenta così:

Blocco di codice SWITCH.
Nell'immagine è mostrato un tipico blocco SWITCH. Il sistema analizza il valore dell'espressione presente nello SWITCH e a seconda del valore esegue il corrispondente blocco CASE. Se nessuno dei blocchi CASE ha il valore giusto il sistema esegue le istruzioni presenti nel blocco DEFAULT. E' possibile aggiungere nuovi blocchi CASE sia premendo ENTER sulla parola SWITCH sia premendo ENTER sulla parentesi graffa chiusa di un qualsiasi blocco CASE. E' possibile convertire un blocco CASE in un DEFAULT e viceversa scrivendo sulla parola CASE. E' anche possibile "collassare" più blocchi case come mostrato nell'immagine seguente:

SWITCH con alcuni blocchi CASE collassati.
Per farlo è sufficiente premere DEL sulla parentesi graffa aperta o chiusa di un blocco CASE. Instant Developer collasserà quel blocco con il successivo. Nel caso mostrato in figura il sistema entra nel blocco di codice CASE per i valori 1, 2 e 3 mentre per qualsiasi altro valore entra nel blocco DEFAULT. Per espandere un blocco CASE è sufficiente premere ENTER sulla parola CASE di un blocco collassato.
Miglioramenti rispetto ai linguaggi di programmazione evoluti
Il costrutto SWITCH/CASE necessita di un'espressione intera per lo SWITCH e di espressioni costanti nei blocchi CASE. Instant Developer permette, però, di utilizzare sia espressioni non intere nel blocco SWITCH sia espressioni non costanti nei blocchi CASE, come mostrato in figura:

Blocchi SWITCH con espressioni non costanti (a sinistra) o tipo di dato diverso da intero (a destra).
L'immagine mostra, infatti, che il secondo CASE contiene un'espressione non costante. Tale funzionalità non è permessa nei linguaggi di programmazione evoluti come C++, C# e Java ma è permessa dentro Instant Developer che la traduce automaticamente in una concatenazione di IF/ELSEIF/ELSE.
Inoltre i blocchi CASE non permettono la creazione di variabili a meno che tutto il corpo del blocco CASE non sia racchiuso in un apposito blocco di codice. Inoltre il blocco CASE deve terminare con il token "break" che spesso viene dimenticato e causa malfunzionamenti. Instant Developer risolve entrambi i problemi creando sempre e comunque un apposito blocco di codice per ogni blocco CASE ed inserendo automaticamente la parola break al termine del blocco. Qualora sia necessario, all'interno del codice contenuto in un blocco CASE, uscire dallo SWITCH è possibile utilizzare il blocco BREAK. Tale blocco di codice è permesso anche nel caso di blocchi SWITCH che Instant Developer traduce in IF/ELSEIF/ELSE.
FOR/SWITCH e database SQLServer e Oracle
I database SQL Server e Oracle non gestiscono i costrutti FOR e SWITCH in maniera nativa pertanto vengono tradotti automaticamente in cicli WHILE e concatenazione di IF/ELSEIF/ELSE.
Attenzione, questo articolo è stato dichiarato obsoleto! Ultima modifica: 15/03/2011 / Validità: da 8.0.3560