Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Boolean expresión. Si condition es Nothing, Visual Basic lo trata como False. |
statements |
Opcional. Una o varias instrucciones siguientes Whilea , que se ejecutan cada vez condition es 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 |
Obligatorio. Finaliza la definición del While bloque. |
Observaciones
Use una While...End While estructura cuando desee repetir un conjunto de instrucciones un número indefinido de veces, siempre y cuando una condición siga siendo True. Si desea más flexibilidad con dónde probar la condición o el resultado para el que lo pruebe, puede preferir do ... Instrucción Loop. Si desea repetir las instrucciones un número establecido de veces, for ... Next Statement 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 True, toda la statements ejecución hasta que se encuentra la End While instrucción . A continuación, el control vuelve a la While instrucción y condition se vuelve a comprobar. Si condition sigue siendo True, el proceso se repite. Si es False, el control pasa a la instrucción que sigue a la End While instrucción .
La While instrucción siempre comprueba la condición antes de iniciar el bucle. El bucle continúa mientras la condición sigue siendo True. Si condition es False cuando entra por primera vez en el bucle, no se ejecuta incluso una vez.
Normalmente condition resulta de una comparación de dos valores, pero puede ser cualquier expresión que se evalúe como un valor de tipo de datos booleano (True o 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 anidar While 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 seguir iterando, como un valor erróneo o una solicitud de finalización. Puede usar Exit While al probar una condición que podría provocar un bucle infinito, que es un bucle que podría ejecutar un número de veces extremadamente grande o infinito. A continuación, puede usar Exit While para escapar el bucle.
Puede colocar cualquier número de Exit While instrucciones en cualquier lugar del While bucle.
Cuando se usa dentro de bucles anidados While , Exit While transfiere el control fuera del bucle más interno y al siguiente nivel superior de 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 Statement.
Ejemplo 1
En el ejemplo siguiente, las instrucciones del bucle continúan ejecutándose hasta que la index 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 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
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 StreamReader que lee los caracteres. En la While condición , el Peek método de StreamReader determina si el archivo 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