Bucles e iteraciones II. (While y Do)

      Bucles de iteración variable, (se desconoce el número de veces que se repite el bucle).

      En este apartado se tratarán los bucles en que no se puede determinar, las veces que éste se ejecutará hasta que se den las cirscunstancias deseadas.

      While condición ... Wend

      Para ejecutar un bucle While, es necesario disponer de una variable que indique hasta cuando se repetirán las instrucciones contenidas entre las cláusulas While y Wend, en el ejemplo, usamos la variable bCondicion:

     Dim bCondicion As Boolean
     While bCondicion
          [ Instrucciones ]
     Wend

     Al llegar a la línea While bCondicion, se analiza bCondicion y caso de ser verdadera, se ejecutan las intrucciones siguientes hasta llegar a la cláusula Wend, devolviendo la ejecución a la linea while, donde ésta se vuelve a evaluar, repitiendose esta situación hasta que adquiera el valor False.

      Do ... Loop [{While | Until} condición]

     El bucle DO al igual que While, evalua una condición para finalizar las iteraciones. Su sintaxis es la siguiente:

     Dim bCondicion As Boolean
     Do
          [
instrucciones]
     Loop [{While | Until}
bCondicion]

     Las cláusulas While o Until, se definirán para indicar si Do se ejecutará mientras que la condición sea True o hasta que sea False.

     Do [{While | Until} condición] ... Loop

     Si usamos Do [{While | Until} condición] se ejecutará de la misma forma, con una sola diferencia; en el caso anterior se ejecutan una vez al menos las intrucciones precedentes a Loop, donde se evalua la condición. En esta segunda forma se evalua la condición antes de entrar en el bucle.

     Dim bCondicion As Boolean
     Do [{While | Until}
bCondicion]
          [
instrucciones]
     Loop

     También se puede usar Do sin las cláusulas While o Until, pero para poder salir del bucle se usará Exit Do, mediante una de las instrucciones de bifurcación If o Select Case según el ejemplo:

     Dim bCondicion As Boolean
     Do
          [
instrucciones]
          If
bCondicion Then
               Exit Do
          End If
     Loop

      Un ejemplo de uso para un bucle de tipo Do o While sería rellenar una lista con valores de una tabla abierta en un objeto Recordset.

      En el ejemplo usamos un objeto ListBox llamado Lst1 que rellenaremos con el valor del primer campo de un objeto recorset llamado Rst, donde previamente hemos abierto una tabla.

     Rst.MoveFirst
     While Not Rst.Eof
          Lst1.AddItem Rst(0)
          Rst.MoveNext
     Wend



    


Copyright © 2001, SoftAutodid