Esta estructura consiste en repetir un grupo de sentencias mientras que la condición que se establece en el while sea verdadera. Su diagrama de flujo es el siguiente:
Hay que tener claro que si el resultado de evaluar la condición por primera vez es falso, no se entra al cuerpo de esta estructura y por lotanto no se ejecutan las sentencias. La sintaxis del bucle while es la siguiente:
|
1 2 3 4 5 6 7 8 9 |
Inicialización; while (condición) { bloque_de_sentencias; actualización; } |

Por ejemplo, si queremos sacar por pantalla los 50 primeros números, lo que haremos en la fase de Inicialización es a la variable entera asignarle un punto de partida (el 0). La condición para permanecer en ese bucle repitiendo código es que la variable entera sea menor o igual a 50. El bloque de sentencias se corresponderá con imprimir la variable y la actualización será incrementar la variable para que vaya recorriendo los 50 primeros números. Observa el siguiente código:
|
1 2 3 4 5 6 7 8 9 10 11 |
int numero=0; while (numero<=50) { System.out.println(numero); numero++; } |
Cuando se ejecuta un bucle while, lo primero de todo es evaluar la condición. Si esta es falsa el bucle termina; sino es falsa entonces se ejecuta el bloque de sentencias y la actualización. En cada iteración (cuando se finaliza el bloque de sentencias y la actualización) se evalúa de nuevo la condición: si es verdadera se vuelve a ejecutar el bloque de sentencias y la actualización; en caso de ser falsa el bucle while termina. Así sucesivamente, hasta el momento en que la condición no se cumpla se finaliza el bucle while y el programa continua su curso sentencia a sentencia.
Por ejemplo, observa el siguiente código que pide números enteros positivos, en el momento que el usuario introduce un número negativo finaliza.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Scanner lector = new Scanner(System.in); int numero=0; while (numero>=0) { System.out.println(“Dame un numero: “); numero=lector.NextInt(); } |
¿Qué hace el siguiente programa?
|
1 2 3 4 5 6 7 8 9 |
int num=1; while (num!=0) { System.out.println(“Numero: “+num); num++; } |
Ejemplo de While en Java
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class EjemploWhile { public static void main(String[] args) { int numero = 8; while(numero <= 5){ System.out.println("Hola " + numero); numero++; } } } |