Compartir a través de


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

  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

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 decisión

Estructuras de bucles

Estructuras de control adicionales

Estructuras de control anidadas

Referencia

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

Otros recursos

Flujo de control en Visual Basic