Declaraciones de bucle en vb
Usar sentencias de bucle
Usar bucles para ejecutar código repetidamente
Los bucles se utilizan para ejecutar repetidamente un conjunto de sentencias. Los bucles se pueden dividir en tres categorías: los que repiten una declaración hasta que una condición se vuelve Falsa, los que repiten una declaración hasta que una condición se vuelve Verdadera y los que repiten una declaración un número específico de veces.
Las siguientes sentencias de bucle se pueden utilizar en VBScript:
Do...Loop: bucle cuando (o hasta) la condición sea verdadera.
While...Wend: Realiza un bucle cuando la condición es True.
Para...Siguiente: especifique el número de veces que se repetirá y utilice un contador para ejecutar repetidamente la declaración.
Para cada...Siguiente: Repite un conjunto de declaraciones para cada elemento de una colección o cada elemento de una matriz.
Uso de bucles Do
Puede utilizar la instrucción Do...Loop para ejecutar un bloque de instrucciones varias veces (el número de veces es variable). Ejecuta repetidamente un bloque de declaraciones mientras la condición es Verdadera o antes de que la condición sea Verdadera.
Repita la declaración cuando la condición sea Verdadera
La palabra clave While se usa para verificar la condición en la declaración Do...Loop. Hay dos formas de verificar una condición: antes de ingresar al bucle (como en el ejemplo de ChkFirstWhile a continuación) o después de que el bucle se haya ejecutado al menos una vez (como en el ejemplo de ChkLastWhile a continuación); En el procedimiento ChkFirstWhile, si el valor inicial de myNum se establece en 9 en lugar de 20, las instrucciones del cuerpo del bucle nunca se ejecutan. Durante el procedimiento ChkLastWhile, las declaraciones dentro del cuerpo del bucle se ejecutan solo una vez porque la condición ya es Falsa cuando se marca.
Sub ChkFirstWhile()
Contador atenuado, myNum
contador = 0
myNum = 20
Hacer Mientras myNum gt; 10
myNum = myNum - 1
contador = contador 1
Bucle
MsgBox "Bucle repetido" amp; contador amp; "veces."
End Sub
Sub ChkLastWhile()
Contador atenuado, myNum
contador = 0< / p>
myNum = 9
Hacer
myNum = myNum - 1
contador = contador 1
Bucle mientras myNum gt 10
MsgBox "El bucle se repite " amp; counter amp " veces."
End Sub
Repite la declaración hasta que la condición se vuelve Verdadera
p>La palabra clave Until se utiliza para verificar las condiciones en las declaraciones Do...Loop. Hay dos formas de verificar una condición: antes de ingresar al bucle (como en el ejemplo ChkFirstUntil a continuación o después de que el bucle se haya ejecutado al menos una vez (como en el ejemplo ChkLastUntil a continuación);
El ciclo continúa mientras la condición sea Falsa.
Sub ChkFirstUntil()
Contador atenuado, myNum
contador = 0
myNum = 20
Do Hasta myNum = 10
myNum = myNum - 1
contador = contador 1
Bucle
MsgBox "Bucle repetido" contador; amp; "veces."
End Sub
Sub ChkLastUntil()
Contador atenuado, myNum
contador = 0 p >
myNum = 1
Hacer
myNum = myNum 1
contador = contador 1
Bucle hasta myNum = 10
MsgBox "El bucle se repite " amp; contador amp " veces."
End Sub
Salir del bucle
Salir de la instrucción Do Se utiliza para salir del bucle Do...Loop. Debido a que generalmente desea salir de un bucle solo bajo ciertas circunstancias especiales (por ejemplo, para evitar un bucle infinito), puede usar la instrucción Exit Do dentro de un bloque True de una instrucción If...Then...Else. Si la condición es Falsa, el ciclo se ejecutará como de costumbre.
En el siguiente ejemplo, el valor inicial de myNum provocará un bucle infinito. La instrucción If...Then...Else comprueba esta condición para evitar un bucle infinito.
Sub ExitExample()
Contador atenuado, myNum
contador = 0
myNum = 9
Hacer Hasta myNum = 10
myNum = myNum - 1
contador = contador 1
Si myNum lt 10 Entonces salga del bucle Do
;
MsgBox "El bucle se repite " amp; contador amp " veces."
End Sub
Usar While...Wend
While...Wend se proporciona para aquellos usuarios que están familiarizados con su uso. Sin embargo, debido a la falta de flexibilidad de While...Wend, se recomienda utilizar la instrucción Do...Loop.
Uso de For...Next
La instrucción For...Next se utiliza para ejecutar un bloque de instrucciones un número específico de veces. Utilice una variable de contador en un bucle cuyo valor aumente o disminuya cada vez que pasa por el bucle.
Por ejemplo, el siguiente ejemplo repite el procedimiento MyProc 50 veces. La declaración For especifica la variable de contador x y sus valores inicial y final. La siguiente declaración incrementa la variable del contador en 1 cada vez.
Sub DoMyProc50Times()
Dim x
Para x = 1 a 50
MyProc
Siguiente
End Sub
La palabra clave Paso se utiliza para especificar el valor que la variable del contador aumenta o disminuye cada vez. En el siguiente ejemplo, la variable de contador j se incrementa en 2 cada vez. Una vez finalizado el ciclo, el valor del total es la suma de 2, 4, 6, 8 y 10.
Sub TwosTotal()
Dim j, total
Para j = 2 a 10 Paso 2
total = total j p> p>
Siguiente
MsgBox "La suma es " amp total amp "."
End Sub
Para disminuir la variable del contador; , puede Paso se establece en un valor negativo. En este momento, el valor final de la variable del contador debe ser menor que el valor inicial. En el siguiente ejemplo, la variable de contador myNum se reduce en 2 cada vez. Una vez finalizado el ciclo, el valor del total es la suma de 16, 14, 12, 10, 8, 6, 4 y 2.
Sub NewTotal()
Atenuar myNum, total
Para myNum = 16 a 2 Paso -2
total = total myNum
Siguiente
MsgBox "La suma es " amp total amp "."
End Sub
Se utiliza la declaración Exit For; en el contador Salga de la instrucción For...Next antes de alcanzar su valor de terminación. Debido a que generalmente desea salir de un bucle solo bajo ciertas circunstancias especiales (como cuando ocurre un error), puede usar la instrucción Salir para dentro de un bloque Verdadero de una instrucción If...Then...Else. Si la condición es Falsa, el ciclo se ejecutará como de costumbre.
Uso de For Each...Next
El bucle For Each...Next es similar al bucle For...Next. For Each...Next En lugar de ejecutar la declaración un número específico de veces, For Each...Next repite un conjunto de declaraciones para cada elemento de una matriz o cada elemento de una colección de objetos. Esto es útil cuando no se sabe el número de elementos de la colección.