Cómo: Ejecutar varias instrucciones de forma repetida
Actualización: noviembre 2007
Puede utilizar las estructuras de bucle para ejecutar un bloque de instrucciones de forma repetida. El bucle puede ejecutarse un número indeterminado de veces, en función del valor Boolean de una condición o durante un número fijo de veces controlado por una variable especial.
Repetición del bucle durante un número indeterminado de veces
Para ejecutar un grupo de instrucciones mientras la condición sea True
Utilice Instrucción While...End While (Visual Basic) para especificar la condición que controla la repetición del bucle. El ejemplo siguiente repite el bloque de instrucciones mientras number sea mayor que 6.
Sub checkWhile() Dim counter As Integer = 0 Dim number As Integer = 10 While number > 6 number -= 1 counter += 1 End While MsgBox("The loop ran " & counter & " times.") End Sub
La instrucción While comprueba siempre la condición antes de iniciar el bucle. Si number se hubiera inicializado en 6 y no en 10, las instrucciones del bucle nunca se ejecutarían.
Para ejecutar un grupo de instrucciones mientras una condición siga siendo True
Utilice Instrucción Do...Loop (Visual Basic) y especifique la condición de la prueba al principio o al final del bucle. La posición de la palabra clave While (Visual Basic) determina dónde se prueba la condición. Esto se ilustra en el siguiente ejemplo:
Sub checkWhileFirst() Dim counter As Integer = 0 Dim number As Integer = 10 Do While number > 6 number -= 1 counter += 1 Loop MsgBox("The loop ran " & counter & " times.") End Sub Sub checkWhileLast() Dim counter As Integer = 0 Dim number As Integer = 5 Do number -= 1 counter += 1 Loop While number > 6 MsgBox("The loop ran " & counter & " times.") End Sub
En el ejemplo anterior, el primer bucle Do se ejecuta cuatro veces y el segundo bucle Do se ejecuta una vez.
Para ejecutar un grupo de instrucciones hasta que una condición sea True
Utilice la construcción Do...Loop con la palabra clave Until en lugar de While. Al igual que con While, la posición de la palabra clave determina dónde se prueba la condición. Esto se ilustra en el siguiente ejemplo:
Sub checkUntilFirst() Dim counter As Integer = 0 Dim number As Integer = 20 Do Until number = 15 number -= 1 counter += 1 Loop MsgBox("The loop ran " & counter & " times.") End Sub Sub checkUntilLast() Dim counter As Integer = 0 Dim number As Integer = 20 Do number -= 1 counter += 1 Loop Until number = 15 MsgBox("The loop ran " & counter & " times.") End Sub
En el ejemplo anterior, cada bucle Do se ejecuta cinco veces.
Repetición del bucle durante un número fijo de veces
Los bucles While y Do funcionan bien cuando no se sabe de antemano cuántas veces se necesitan ejecutar las instrucciones en un bucle. Sin embargo, cuando espera ejecutar el bucle un número concreto de veces, Instrucción For...Next (Visual Basic) es una mejor elección. A diferencia de un bucle While o Do, un bucle For...Next utiliza una variable denominada variable de control que aumenta o reduce su valor en cada repetición del bucle.
Para ejecutar un grupo de instrucciones un número fijo de veces
Determine los valores de inicio y fin de la variable de control y utilice la instrucción For para especificarlos.
For i As Integer = 1 To 10
Si la variable de control no está declarada fuera del bucle, puede utilizar la cláusula As para declararla como parte de la instrucción For.
Utilice la palabra clave Step para indicar la cantidad que debe aumentar la variable de control en cada iteración. Aumenta en 1 a menos que especifique lo contrario. Utilice un valor negativo para hacer que la variable de control disminuya.
For i As Integer = 10 To 1 Step -1
Finalice la construcción For...Next con una instrucción Next que sigue a la última instrucción que se va a repetir. Puede especificar la variable de control en la instrucción Next.
Function addBackward(ByVal highest As Integer) As Integer Dim total As Integer = 0 For i As Integer = highest To 1 Step -1 total += i Next i Return total End Function
El ejemplo anterior devuelve la suma de todos los números enteros desde 1 hasta el valor pasado al parámetro highest.
Vea también
Tareas
Cómo: Transferir el control fuera de una estructura de control
Cómo: Ejecutar varias instrucciones para todos los elementos de una colección o matriz
Cómo: Mejorar el rendimiento de un bucle
Cómo: Pasar a la siguiente iteración de un bucle
Conceptos
Estructuras de control adicionales
Estructuras de control anidadas
Referencia
Instrucción For Each...Next (Visual Basic)