Compartir a través de


Instrucción While...End While (Visual Basic)

Ejecuta una serie de instrucciones siempre que una condición dada sea True.

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Elementos

Término

Definición

condition

Requerido. Expresión Boolean. Si condition es Nothing, Visual Basic la trata como False.

statements

Opcional. Una o más instrucciones a continuación de While, que se ejecutan cada vez que condition es True.

Continue While

Opcional. Transfiere el control a la siguiente iteración del bloque de While .

Exit While

Opcional. Transfiere el control fuera del bloque While.

End While

Requerido. Termina la definición del bloque While.

Comentarios

Utilice una estructura While...End While si desea repetir un conjunto de instrucciones un número indefinido de veces, siempre que una condición sea True. Si desea más flexibilidad con respecto a la ubicación donde prueba la condición o al resultado para el que la prueba, quizá prefiera Instrucción Do...Loop (Visual Basic). Si desea repetir las instrucciones un número fijo de veces, Instrucción For...Next (Visual Basic) suele ser mejor opción.

Si condition es True, se ejecutan todas las statements hasta que se encuentra la instrucción End While El Control se devuelve a While el fragmento, y condition se comprueba de nuevo. Si condition aún es True, se repite el proceso. Si es False, el control que se va a extraer que sigue el fragmento de End While .

El fragmento de While comprueba siempre la condición antes de iniciar el bucle. La ejecución en bucle continúa mientras el resultado de la condición sea True. Si condition es False cuando primero entra en el bucle, no ejecuta incluso una vez.

condition resultados general de una comparación de dos valores, pero puede ser cualquier expresión que se evalúa como Boolean (Tipo de datos, Visual Basic) un valor (True o False). Esta expresión puede incluir un valor de otro tipo de datos, como un tipo numérico, convertido en Boolean.

Se pueden anidar bucles While colocando un bucle dentro de otro. También puede anidar distintos tipos de estructuras de control dentro de otras. Para obtener más información, vea Estructuras de control anidadas (Visual Basic).

Salida mientras

El fragmento de Salida mientras puede proporcionar otra forma de salir de un bucle de While . DeExit While transfiere el control inmediatamente al extraer que sigue el fragmento de End While .

Normalmente se utiliza Exit While después de que se evalúe alguna condición (por ejemplo, en una estructura de If...Then...Else ). Por ejemplo, puede ser conveniente salir de un bucle si se detecta una condición que hace que sea innecesario o imposible continuar la iteración, como puede ser un valor erróneo o una solicitud de finalización. Puede utilizar Exit While cuando se prueba para una condición que podría provocar un bucle infinito, que es un bucle que puede ejecutar un número muy grande o incluso infinito de veces. Puede utilizar Exit While para que el bucle.

Puede poner cualquier número de instrucciones Exit While en cualquier lugar del bucle While.

Cuando se utiliza dentro de bucles While anidados, Exit While transfiere el control fuera del bucle más profundo y al siguiente nivel de anidamiento.

De Continue While de extraer transfiere el control inmediatamente a la siguiente iteración del bucle. Para obtener más información, vea Continue (Instrucción, Visual Basic).

Ejemplo

En el ejemplo siguiente, las instrucciones del bucle continúan ejecutándose hasta que la variable index es superior a 10.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

En el siguiente ejemplo se muestra el uso de las instrucciones Continue While y Exit While.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue 
    ' with the next iteration. 
    If index >= 5 And index <= 8 Then 
        Continue While 
    End If 

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop. 
    If index = 10 Then 
        Exit While 
    End If 
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

En el ejemplo siguiente se leen todas las líneas de un archivo de texto. El método OpenText abre el archivo y devuelve un StreamReader que lee los caracteres. En la condición de While , el método de Peek de StreamReader determina si contiene caracteres adicionales.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else 
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If 
End Sub

Vea también

Referencia

Instrucción Do...Loop (Visual Basic)

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

Boolean (Tipo de datos, Visual Basic)

Exit (Instrucción, Visual Basic)

Continue (Instrucción, Visual Basic)

Conceptos

Estructuras de bucles (Visual Basic)

Estructuras de control anidadas (Visual Basic)