|
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 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 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 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 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 |
Copyright © 2001, SoftAutodid