› Sviluppare funzionalita su Microsoft Office con VBA › Cicli Do con While e Until
-
AutoreArticoli
-
ciao a tutti,
devo dire che in passato riguardo al quesito posto, non ho mai avuto
particolari problemi adattando le istruzioni alle necessità del momento,
ma finalmente ho trovato tempo per per cercare di dipanare un vecchio dubbio.in allegato un semplicissimo file in cui sono piene solo la cella A1 e A2.
Domanda:
con quale criterio scelgo se utilizzare l'istruzione
Do While o Loop While oppure Do Until o Loop Until?Ho inserito 4 semplici Do Loop che si fermano alla prima cella vuota della colonna A
ed ovviamente le iterazioni dei cicli sono solo 2 (due),sia che il ciclo cominci con
Do While > condizione > finisce con Loop
Do until > condizione contraria > finisce con Loopo finisca con
Loop While > condizione > inizia con Do
Loop Until > condizione contraria > inizia con Do.Qualcuno mi sa dare una risposta, oppure non c'è e mi sto solo fasciando la testa....
visto che oramai non è tanto intera....?ciao
Frank
Allegati:
You must be logged in to view attached files.Dal punto di vista concettuale non ci sono grandi differenze. Il costrutto Do ... Loop innesca un ciclo che esce a una determina condizione. While ripete il ciclo finché la condizione rimane vera, Until ripete il ciclo a meno che non sia soddisfatta la condizione.
Porre le condizioni in cima o in fondo al blocco è ininfluente dal punto di vista logico ma ha una conseguenza sul numero di istruzioni esaminate.Tracciando con F8 i tuoi 4 cicli:
- il primo esegue tre passate ed esce (si ferma tre volte a esaminate il Do While);
- il secondo esegue due passate ed esce (si ferma due volte a esaminare il Loop While);
- il terzo è come il primo (ma la condizione è rovesciata: uguaglianza invece che diversità);
- il quarto come il secondo (con la condizione rovesciata, ed è ininfluente l'Or aggiunto).Devi scegliere quale costrutto ti piace di più secondo la logica del programma (fare qualcosa mentre o finché? e la condizione da soddisfare deve essere vera o falsa?). O secondo criteri di lettura de codice quando lo rileggi 🙂
ciao Francesco,
grazie per la risposta e la conferma che l'utilizzo delle bende con cui mi sto fasciando la testa
non è superfluo
ciao e grazie
Frank
Io poi utilizzo raramente Do...Loop, ho sempre preferito While...Wend 🙂
Ad integrazione di quanto :
i costrutti
Do while condizioneistruzioneLoop-Ripete il ciclo zero o piu volte
-Continuare a ripetere qualcosa fino aquando una determinata condizione resta TrueDoistruzioniLoop While Condizione-Ripete il ciclo almeno una volta
-Continuare a ripetere qualcosa fino aquando una determinata condizione resta Truei costrutti
Do Until condizioneistruzioniLoop-Ripete il ciclo zero o piu volte
-Continuare a ripetere qualcosa fino aquando una determinata condizione diventa TrueDoistruzioniUntil Loop condizione-Ripete il ciclo almeno una volta
-Continuare a ripetere qualcosa fino aquando una determinata condizione diventa TrueQual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Ecco una spiegazione più tecnica della mia 🙂 👍
-
AutoreArticoli
