Bucles de VBScript: hacer mientras, hacer hasta, mientras, para cada uno (ejemplo)

¿Por qué se utilizan bucles en VBScript?

Los bucles se utilizan para ejecutar el mismo bloque de código una y otra vez. Hay varias declaraciones de bucle de VBScript. Algunas de las declaraciones de bucle de VBScript son Do While, Do Until, For…..Siguiente y así sucesivamente. Entonces, ¿cómo decidirá qué declaración de bucle utilizar según sus necesidades?

Mientras ejecuta los bucles, es posible que sepa o no la cantidad de veces que desea ejecutar un conjunto de instrucciones. Por ejemplo, quieres calcular la suma de dos números diez veces. En este caso, ya sabes que quieres repetir un bloque de código 10 veces. Supongamos que desea calcular la suma de dos números hasta que una variable en particular se vuelva verdadera. Aquí no se sabe cuántas veces se ejecutará el bucle. Entonces, dependiendo de si conoce o no el número de ejecuciones, puede usar diferentes tipos de declaraciones de bucle.

Las declaraciones de bucle For…Next se utilizan si desea repetir un bloque de código un número finito de veces, es decir, si conoce el número de veces si desea repetir el bloque de código.

Las declaraciones de bucle Do While y Do Until se utilizan cuando desea repetir un bloque de código hasta que una condición se vuelva verdadera o falsa, es decir, cuando no sabe la cantidad de veces que desea ejecutar el bloque de código.

Echemos un vistazo a estas declaraciones en bucle una por una.

VBScript hacer mientras bucle

Si no sabe la cantidad de veces que necesita ejecutar un bloque de código, entonces utilizará los bucles Do While. Por ejemplo, desea generar el mensaje "Bienvenido" mientras el valor de la variable x es menor que 5. En tal caso, se utilizará el bucle Do While.

<script type="text/vbscript">
Dim x
x=1
Do While x<5
document.write("Welcome.")
x=x+1
Loop
</script>

Si intentas ejecutar el código, obtendrás un resultado como este:

VBScript hacer mientras bucle

El bloque se ejecuta cuatro veces (cuando x=1,2,3 y 4) y el ciclo termina cuando el valor de x se convierte en 5. Si olvidas la declaración x=x+1, entonces tu ciclo se convertirá en un ciclo sin fin. uno. Este tipo de bucles se conoce como bucles infinitos. Los bucles infinitos podrían incluso bloquear su sistema. Por lo tanto, al utilizar declaraciones de bucle Do While, debe asegurarse de que haya algún código que haga que la condición de bucle sea verdadera en un momento u otro.

Si asigna el valor 7 a la variable x al principio, el bloque de código no se ejecutará ni una sola vez. Supongamos que desea ejecutar el bloque de código al menos una vez independientemente de la condición, entonces puede usar el bucle Do While. Cambie el código así:

Ejemplo de VBScript:

<script type="text/vbscript">
Dim x
x=7
Do 
document.write("Welcome.")
x=x+1
Loop While x<5
</script>

Si ejecuta este código, recibirá el mensaje "Bienvenido" solo una vez. Aquí la condición se verifica solo después de ejecutar el bucle una vez.

VBScript hacer hasta bucle

El bucle 'Do Until' también se utiliza cuando no se sabe el número de veces que se necesita para ejecutar un bloque de código. El primer bloque de código en el bucle Do Until (Do While x<5) es equivalente al bloque de código que se proporciona a continuación.

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
document.write("Welcome.")
x=x+1
Loop
</script>

Esto le dará el mismo resultado que el primer bloque de código en el bucle Do While. Verá el mensaje de bienvenida cuatro veces. Similar a Do…..Loop While, también tenemos que Do…Loop Until.

Si desea salir de un bucle Do While o Do Until intermedio, puede utilizar la instrucción Exit Do. Supongamos que desea salir del bloque cuando el valor de x sea 3 en el programa anterior, entonces necesita codificar así:

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
If x=3 Then Exit Do
document.write("Welcome.")
x=x+1
Loop
</script>

Si ejecuta el código, su salida se verá así:

VBScript hacer hasta bucle

Aquí se sale del ciclo cuando el valor de x se convierte en 3.

VBScript mientras bucle

El bucle While...Wend es similar al bucle Do While, aunque no se utiliza habitualmente. As Do While está más estructurado que While.....Wend loop, los programadores suelen utilizar declaraciones Do While.

<script type="text/vbscript">
Dim x
x = 1   
While x < 5   
document.write("Welcome.")
x=x+1
Wend  
</script>	

La salida será

VBScript mientras bucle

VBScript para el siguiente bucle

El bucle For-Next se puede utilizar para ejecutar un bloque de código una cantidad específica de veces. El “bucle For de VBScript” especifica la variable del contador y sus valores de inicio y fin. La siguiente declaración aumenta la variable del contador en uno.

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

Si ejecuta el código, obtendrá un resultado como este:

VBScript para el siguiente bucle

Bucle de VBScript para el paso siguiente

De forma predeterminada, la variable del contador se incrementa en uno. Si desea aumentar o disminuir la variable del contador según el valor que especifique, puede usar el bucle For….Step….Next. Supongamos que en el código anterior desea incrementar el contador en 2 y luego modificar su código de esta manera:

For i = 1 To 5 Step 2
  document.write("The number is " & i & "<br />")
Next
</script>

La salida de este código será:

Bucle de VBScript para el paso siguiente

Si desea salir de un bucle Para el siguiente o Para el paso siguiente en el medio, puede usar Salir para la declaración. Supongamos que desea salir del bloque cuando el valor de i sea 3 en el programa anterior, entonces necesita codificar así:

<script type="text/vbscript">
For i = 1 To 5 Step 2
  If i=3 Then Exit For
  document.write("The number is " & i & "<br />")
Next
</script>

La salida será:

Bucle de VBScript para el paso siguiente

VBScript para cada siguiente bucle

Si desea repetir un bloque de código para cada elemento de una colección o para cada elemento de una matriz VBS, entonces necesita usar el bucle For…Each…Next.

<script type="text/vbscript">
Dim students(4)
students(0)="John"
students(1)="Hanah"
students(2)="Sarah"
students(3)="Kevin"
students(4)="Emma"

For Each x In students
  document.write(x & "<br />")
Next
</script>

La salida del código especificado anteriormente será

VBScript para cada siguiente bucle

Ejemplo de código

<html>
<head>

<script type="text/vbscript">
Dim name, length
name = InputBox("Enter your name")
length = Len(name)’Gives length of the input string

For i = 1 To length
  txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return
  If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then 
  counter = counter+1
  End If
Next
document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.")
</script>

</head>
<body>

</body>
</html>

Guarde el archivo como loop.html en su ubicación preferida. Ahora abra el archivo en Internet Explorer y obtendrá un box pidiéndole que ingrese su nombre. Ingrese un nombre, digamos Aaron, como este:

VBScript para cada siguiente bucle

Haga clic en Aceptar y su resultado se verá así:

VBScript para cada siguiente bucle

Resumen

  • Las declaraciones en bucle se utilizan para ejecutar el mismo bloque de código una y otra vez.
  • Utilizará los bucles Do-While, Do-Until y While-Wend cuando no sepa de antemano cuántas veces se ejecutará el bloque.
  • Utilizará los bucles For-Next, For-Next-Step y For-Each-Next si ya sabe la cantidad de veces que necesita ejecutar el bloque de código.