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.
Nota
La palabra clave While también se utiliza en Instrucción Do...Loop (Visual Basic), Skip While (Cláusula, Visual Basic) y Take While (Cláusula, Visual Basic).
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)