Sentencia do..loop
Do...Loop
Utilice el bucle Do para ejecutar un bloque de sentencias un número indefinido de veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evalúa una condición numérica para determinar si continúa la ejecución. Como ocurre con If...Then, la condición debe ser un valor o una expresión que dé como resultado False (cero) o True (distinto de cero).
En el siguiente ejemplo de Do...Loop, las sentencias se ejecutan siempre y cuando condición sea True:
Do While condición
Sentencias
Loop
Cuando Visual Basic ejecuta este bucle Do, primero evalúa condición. Sicondición es False (cero), se salta todas las sentencias. Si es True (distinto de cero) Visual Basic ejecuta las sentencias, vuelve a la instrucción Do While y prueba la condición de nuevo.
Por tanto, el bucle se puede ejecutar cualquier número de veces, siempre y cuando condición sea distinta de cero o True. Nunca se ejecutan las sentenciassi condición es False inicialmente. Por ejemplo, este procedimiento cuenta las veces que se repite una cadena destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre la cadena de destino:
Function ContarCadenas (cadenalarga, destino)
Dim posición, contador
posición = 1
Do While InStr (posición, cadenalarga, destino)
posición = InStr (posición, cadenalarga, destino)+1
contador = contador + 1
Loop
ContarCadenas = contador
End Function
Si la cadena destino no está en la otra cadena, InStr devuelve 0 y no se ejecuta el bucle.
Otra variante de la instrucción Do...Loop ejecuta las sentencias primero y prueba la condición después de cada ejecución. Esta variación garantiza al menos una ejecución de sentencias:
Do
Sentencias
Loop While condición
Hay otras dos variantes análogas a las dos anteriores, excepto en que repiten el bucle siempre y cuando condición sea False en vez de True.
Hace el bucle cero o más veces
Do Until condición
Sentencias
Loop
Hace el bucle al menos una vez
Do
Sentencias
Loop Until condición
No hay comentarios:
Publicar un comentario