BUCLES

Estructuras de Bucle en Visual Basic 6.0

Las estructuras de bucle le permiten ejecutar una o más líneas de código repetidamente. Las estructuras de bucle que acepta Visual Basic son:

1) Do ... Loop (En español: Hacer ... Repetir)

2) While .... Wend (En español: Mientras .... Fin de Mientras)

Wend es una abreviación de While end

3) For ... Next (En español: Para ... Siguiente)

4) For Each ... Next (En español: Para Cada ... Siguiente)

Estructura Do ... Loop

Un Loop (Bucle) repite la ejecución de un conjunto de sentencias mientras una condición cada sea cierta (True), o hasta que una condición dada sea cierta (True). La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:

Formato 1

Estructura 1

Do While Condición

'Sentencias

Loop

Estructura 2

Do Until Condición

'Sentencias

Loop

Estructura 3

Do While Condición

'Sentencias

Exit Do

'Sentencias

Loop

Estructura 4

Do Until Condición

'Sentencias

Exit Do

'Sentencias

Loop

Formato 2

Estructura 1

Do

'Sentencias

Loop While Condición

Estructura 2

Do

'Sentencias

Loop Until Condición

Estructura 3

Do

'Sentencias

Exit Do

'Sentencias

Loop While Condición

Estructura 4

Do

'Sentencias

Exit Do

'Sentencias

Loop Until Condición

La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice éste.

Ejemplo:

Check = True 'Se inicializan las variables

Counts = 0

Do 'Empieza el primer bucle sin comprobar ninguna condición

Do While Conts < 20 'Empieza el segundo bucle que termina si Counts >= 20 o con Exit Do

Counts = Conts + 1 'Se incrementa Counts

If Counts = 10 Then 'Si Counts en 10 entonces

Check = False 'Se asigna a Check el valor False

Exit Do 'Se termina el segundo Bucle con Exit Do

End if

Loop 'Termina el segundo Bucle sin comprobar ninguna condición

Loop Until Check = False 'Termina el primer Bucle si Check es False

En el ejemplo mostrado, se sale de los bucles siempre con Conts = 10. Es necesario fijarse que si se inicializa Conts con un número mayor o igual a 10 se entraría en un bucle infinito (El segundo bucle acabaría con Counts = 20 pero el primero no finalizaría nunca).

Estructura While ... Wend

Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición inicial. Su estructura es la siguiente:

While

'Sentencias

Wend

Ejemplo:

Conts = 0 'Se inicializa la variable.

While Conts < 20 'Se comprueba el valor de Counts

Counts = Conts + 1 'Se incrementa el valor de Counts

Wend 'Se acaba el bucle cuando Counts > 19

Estructura For ... Next

La sentencia For da lugar a un bucle, y permite ejecutar un conjunto de sentencias cierto número de veces, su forma general es:

Estructura 1

For Variable = Valor Inicial To Valor Final

'Sentencias

Next Variable

Estructura 2

For Variable = Valor Inicial To Valor Final Step Valor

'Sentencias

Next Variable

Estructura 3

For Variable = Valor Inicial To Valor Final

'Sentencias

Exit For

'Sentencias

Next Variable

Estructura 4

For Variable = Valor Inicial To Valor Final Step Valor

'Sentencias

Exit For

'Sentencias

Next Variable

Cuando se ejecuta una sentencia For, primero se asigna el Valor Inicial a la variable y se comprueba si su valor es mayor o menor que el Valor Final. En caso de ser menor o igual se ejecutan las sentencias, y en caso de ser mayor el control del programa salta a las línea a continuación del Next (Se sale del For). Todo esto sucede en caso de ser Valor postivo. En caso contrario se ejecutarán las sentencias cuando la variable sea mayor que Valor Final. Una vez ejecutadas las sentencias, la variables se incrementa en el valor de Valor, o en 1 si Step no se especifica, volviéndose a efectuar la comparación entre la variable y el Valor Final, y así sucesivamente. La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste finalice.

Ejemplo:

MiEspecialidad = "Informática"

For Words = 3 To 1 Step -1 '3 veces decremento de 1 en 1

For Chars = Words To Words + 4 '5 veces

MiEspecialidad = MiEspecialidad & Chars 'Se añade el número Chars al String

Next Chars 'Se incrementa el contador

MiEspecialidad = MiEspecialidad & " " 'Se añade un espacio

Next Words

'El valor de MiEspecialidad es: Informática 34567 23456 12345

Estructura For Each ... Next

Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los elementos de un array (o de una colección de objetos). La forma general es la siguiente:

For Each Variable In Grupo

'Sentencias

Next Variable

Con arrays variable tiene que ser de tipo Variant. Con colecciones variables puede ser Variant o una Variable de tipo Object. Esta construcción es muy útil cuando no se sabe el número de elementos que tiene el array o la colección de objetos.