Cómo: Ejecutar varias instrucciones de forma repetida (Visual Basic)

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 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. Se muestra cómo hacerlo en el ejemplo siguiente.

    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

  1. 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.

  2. 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
    
  3. 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 (Visual Basic)

Cómo: Ejecutar varias instrucciones para todos los elementos de una colección o matriz (Visual Basic)

Cómo: Mejorar el rendimiento de un bucle (Visual Basic)

Cómo: Pasar a la siguiente iteración de un bucle (Visual Basic)

Referencia

Instrucción For Each...Next (Visual Basic)

Conceptos

Estructuras de decisión (Visual Basic)

Estructuras de bucles (Visual Basic)

Estructuras de control adicionales (Visual Basic)

Estructuras de control anidadas (Visual Basic)

Otros recursos

Flujo de control en Visual Basic