Sviluppare funzionalita su Microsoft Office con VBA Cicli Do con While e Until

Login Registrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #35990 Score: 0 | Risposta

    tanimon
    Partecipante
      16 pts

      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 Loop

      o 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.
      #35992 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        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 🙂

         

         

        #35993 Score: 0 | Risposta

        tanimon
        Partecipante
          16 pts

          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

          #35994 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Io poi utilizzo raramente Do...Loop, ho sempre preferito While...Wend 🙂 

            #35995 Score: 0 | Risposta

            albatros54
            Moderatore
              89 pts

              Ad integrazione di quanto :

              i costrutti

               

              Do while condizione
              istruzione
              Loop

              -Ripete il ciclo zero o piu volte
              -Continuare a ripetere qualcosa fino aquando una determinata condizione resta True

              Do
              istruzioni
              Loop While Condizione

              -Ripete il ciclo almeno una volta
              -Continuare a ripetere qualcosa fino aquando una determinata condizione resta True

              i costrutti

              Do Until condizione
              istruzioni
              Loop

              -Ripete il ciclo zero o piu volte
              -Continuare a ripetere qualcosa fino aquando una determinata condizione diventa True

              Do
              istruzioni
              Until Loop condizione

              -Ripete il ciclo almeno una volta
              -Continuare a ripetere qualcosa fino aquando una determinata condizione diventa True

               

               

              Qual è 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 )
              #35996 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                Ecco una spiegazione più tecnica della mia 🙂 👍

                #36002 Score: 0 | Risposta

                tanimon
                Partecipante
                  16 pts

                  ciao Gio,

                  grazie anche a Te per il tuo suggerimento/supporto   

                   

                  ciao 

                  Frank

                Login Registrati
                Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
                Rispondi a: Cicli Do con While e Until
                Gli allegati sono permessi solo ad utenti REGISTRATI
                Le tue informazioni: