Buongiorno a tutti,
ho bisogno di utilizzare all'interno di un ciclo, scritto in VB6, una istruzione simile all' istruzione
del c.codice:continue
Avrei pensato alternativamente all'uso dell'istruzione
Grazie anticipatamente.codice:goto
Buongiorno a tutti,
ho bisogno di utilizzare all'interno di un ciclo, scritto in VB6, una istruzione simile all' istruzione
del c.codice:continue
Avrei pensato alternativamente all'uso dell'istruzione
Grazie anticipatamente.codice:goto
ciao Luciano79,
"Exit For" (o Exit Do) sono l'equivalente dell'istruzione "break" del C.
A me serve che questa istruzione (cosi come fa il continue del C) passi il controllo al ciclo e continui l'esecuzione del ciclo stesso, invece, l'istruzione "Exit" di VB6, esce dal ciclo e passa il controllo all'istruzione che si trova appena dopo l'istruzione di fine ciclo (cosi come il "break" del C).
La Continue in VB6 non esiste (e' stata aggiunta in VB.NET).
Si puo' usare il goto ma non e' molto "elegante".
In genere, l'istruzione Continue non è strettamente necessaria perche' il codice può essere riscritto utilizzando una logica condizionale più sofisticata. A volte pero', questa logica e' diventa troppo sofisticata ...
ciao oregon,
infatti per "strutturare" meglio il codice sono costretto ad essere molto invasivo sul codice stesso, e per evitarlo, mi sembrava utile poter usare un goto "mascherato" come il continue.
Comunque l'aggiunta del goto, in questo caso particolare che non sto a descrivere, credo permetta una maggiore pulizia del codice pur distruggendo la programmazione strutturata.
Se ritieni che possa essere utile mostrare la porzione del codice per discuterne tutti, ok ... altrimenti il goto sicuramente funzionera' ...
Di solito, è vero, l'utilizzo del Goto sopprime una programmazione strutturata. Nel tuo caso, se la logica decisionale del ciclo impone un nuovo controllo (e di seguito il Goto) è facilmente immaginabile che per implementarlo strutturalmente ti tocca riscrivere tutto.
Il mio consiglio è: usa il Goto! C'è, perché non usarlo quando proprio serve?![]()
Naturalmente è sempre preferibile, un poi, rimaneggiare il codice in modo da renderlo più funzionale e nidificare il meno possibile le strutture decisionali (solo così avrai una maggiore flessibilità alle future aggiunte senza dover "RISCRIVERE" tutto il sorgente del ciclo)
Che la forza del GoTo sia con te![]()
Lasciate vivere!
Primi esperimenti italiani di 3d autorispondenti:
http://forum.html.it/forum/showthrea...hreadid=719230
http://forum.html.it/forum/showthrea...hreadid=735278
http://forum.html.it/forum/showthrea...postid=6758372
Non sono un "integralista" della lotta al goto, ma non condivido il fatto che si inciti ad usarlo ... secondo me e' dannoso ed esiste sempre un modo per evitarlo aumentando la leggibilita' del codice ....
Non incito all'uso del Goto, ma in caso serva per una modifica "a volo", credo sia molto più utile e funzionale rispetto ai giorni sprecati nel riscrivere e testare una struttura decisionale.
Mi ripeto: il linguaggio offre questa possibilità, perché non usarla?![]()
E poi diciamocelo: la programmazione strutturata è un 'invenzione' dei linguaggi ad alto livello. Alla fine, nel codice macchina, tutto si risolve con una serie di jump!![]()
[PubblicitàProgresso]
L'uso del Goto può portare dipendenza.
Se vedi un programmatore usare il Goto, digli di smettere!
L'uso passivo del Goto è dannoso come quello attivo.
Non usare il Goto oggi, piuttosto un Select Case domani!
Usare il Goto una volta può provocare convulsioni, usarlo fino a 5 volte il coma e usarlo sempre può portare alla dipendenza da Visual Basic!
[/PubblicitàProgresso]
... Ok Ok, non continuo più con queste baggianate.
![]()
Lasciate vivere!
Primi esperimenti italiani di 3d autorispondenti:
http://forum.html.it/forum/showthrea...hreadid=719230
http://forum.html.it/forum/showthrea...hreadid=735278
http://forum.html.it/forum/showthrea...postid=6758372