Instrucción While...End While (Visual Basic)
Ejecuta una serie de instrucciones siempre que una condición determinada sea True .
Sintaxis
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Partes
| Término | Definición |
|---|---|
condition |
Obligatorio. Expresión Boolean. Si condition es , Visual Basic trata como Nothing False . |
statements |
Opcional. Una o varias instrucciones siguientes a While , que se ejecutan cada vez es condition True . |
Continue While |
Opcional. Transfiere el control a la siguiente iteración del While bloque. |
Exit While |
Opcional. Transfiere el control fuera del While bloque. |
End While |
Necesario. Termina la definición del bloque While. |
Comentarios
Use una estructura cuando desee repetir un conjunto de instrucciones un número indefinido de veces, siempre que una While...End While condición permanezca True . Si desea más flexibilidad con respecto a dónde probar la condición o para qué resultado la prueba, es posible que prefiera... Instrucción de bucle. Si desea repetir las instrucciones un número establecido de veces, for... La instrucción siguiente suele ser una mejor opción.
Nota
La While palabra clave también se usa en do... Instrucción loop, la cláusula Skip While y la cláusula Take While.
Si condition es , se ejecuta todo hasta que se encuentra la instrucción True statements End While . A continuación, el control vuelve While a la instrucción y se vuelve a condition comprobar. Si condition sigue siendo , el proceso se True repite. Si es False , el control pasa a la instrucción que sigue a la End While instrucción .
La While instrucción comprueba siempre la condición antes de iniciar el bucle. El bucle continúa mientras la condición permanece True . Si condition es la primera vez que escribe el False bucle, no se ejecuta ni una vez.
Suele ser el resultado de una comparación de dos valores, pero puede ser cualquier expresión que se evalúe como un valor de tipo de datos condition booleano ( o True False ). Esta expresión puede incluir un valor de otro tipo de datos, como un tipo numérico, que se ha convertido en Boolean .
Puede While anidar bucles colocando un bucle dentro de otro. También puede anidar diferentes tipos de estructuras de control entre sí. Para obtener más información, vea Estructuras de control anidadas.
Salir mientras
La instrucción Exit While puede proporcionar otra manera de salir de un While bucle. Exit While transfiere inmediatamente el control a la instrucción que sigue a la End While instrucción .
Normalmente se usa Exit While después de evaluar alguna condición (por ejemplo, en una If...Then...Else estructura). Es posible que quiera salir de un bucle si detecta una condición que hace que sea innecesario o imposible continuar la iteración, como un valor erróneo o una solicitud de finalización. Puede usar al probar una condición que podría provocar un bucle sin fin , que es un bucle que podría ejecutar un número de veces extremadamente grande o incluso Exit While infinito. A continuación, puede Exit While usar para escapar el bucle.
Puede colocar cualquier número de Exit While instrucciones en cualquier lugar del While bucle.
Cuando se usa en bucles anidados, transfiere el control fuera del bucle más interno y While al siguiente nivel superior de Exit While anidamiento.
La Continue While instrucción transfiere inmediatamente el control a la siguiente iteración del bucle. Para obtener más información, vea Continue (Instrucción).
Ejemplo 1
En el ejemplo siguiente, las instrucciones del bucle siguen en ejecución hasta que index la variable es mayor que 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
Ejemplo 2
En el ejemplo siguiente se muestra el uso de las Continue While Exit While instrucciones y .
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
Ejemplo 3
En el ejemplo siguiente se leen todas las líneas de un archivo de texto. El OpenText método abre el archivo y devuelve un que lee los StreamReader caracteres. En la While condición , el método de determina si el archivo contiene caracteres Peek StreamReader 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