En este tutorial, aprenderemos a usar while y do while en Java con la ayuda de ejemplos.
En programación de computadoras, los bucles se utilizan para repetir un bloque de código. Por ejemplo, si desea mostrar un mensaje 100 veces, puede usar un bucle. Es solo un ejemplo simple; puedes lograr mucho más con los bucles.
En el tutorial anterior, aprendió sobre Java for loop. Aquí, aprenderá sobre while
y do… while
bucles.
Bucle while de Java
El while
bucle de Java se utiliza para ejecutar un código específico hasta que se cumpla una determinada condición. La sintaxis del while
bucle es:
while (testExpression) ( // body of loop )
Aquí,
- Un
while
bucle evalúa la expresión textExpression dentro del paréntesis()
. - Si textExpression se evalúa como
true
,while
se ejecuta el código dentro del bucle. - La expresión textExpression se evalúa de nuevo.
- Este proceso continúa hasta que textExpression es
false
. - Cuando textExpression se evalúa
false
, el bucle se detiene.
Para obtener más información sobre las condiciones, visite Operadores lógicos y relacionales de Java.
Diagrama de flujo del bucle while

Ejemplo 1: Mostrar números del 1 al 5
// Program to display numbers from 1 to 5 class Main ( public static void main(String() args) ( // declare variables int i = 1, n = 5; // while loop from 1 to 5 while(i <= n) ( System.out.println(i); i++; ) ) )
Salida
1 2 3 4 5
Así es como funciona este programa.
Iteración | Variable | Condición: i <= n | Acción |
---|---|---|---|
Primero | i = 1 n = 5 | true | Se imprime 1. i aumenta a 2 . |
2do | i = 2 n = 5 | true | Se imprime 2. i aumenta a 3 . |
Tercero | i = 3 n = 5 | true | Se imprime 3. i aumenta a 4 . |
Cuarto | i = 4 n = 5 | true | Se imprime 4. i aumenta a 5 . |
Quinto | i = 5 n = 5 | true | Se imprime 5. i aumenta a 6 . |
Sexto | i = 6 n = 5 | false | El bucle se termina |
Ejemplo 2: Suma de números positivos únicamente
// Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // take integer input from the user System.out.println("Enter a number"); int number = input.nextInt(); // while loop continues // until entered number is positive while (number>= 0) ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) System.out.println("Sum = " + sum); input.close(); ) )
Salida
Ingrese un número 25 Ingrese un número 9 Ingrese un número 5 Ingrese un número -3 Suma = 39
En el programa anterior, hemos utilizado la clase Scanner para recibir información del usuario. Aquí, nextInt()
toma la entrada entera del usuario.
El while
ciclo continúa hasta que el usuario ingresa un número negativo. Durante cada iteración, el número ingresado por el usuario se agrega a la sum
variable.
Cuando el usuario ingresa un número negativo, el ciclo termina. Finalmente, se muestra la suma total.
Java do … while loop
El do… while
bucle es similar al bucle while. Sin embargo, el cuerpo del do… while
bucle se ejecuta una vez antes de que se verifique la expresión de prueba. Por ejemplo,
do ( // body of loop ) while(textExpression)
Aquí,
- El cuerpo del bucle se ejecuta al principio. Entonces se evalúa la expresión textExpression .
- Si textExpression se evalúa como
true
, el cuerpo del bucle dentro de lado
declaración se ejecuta nuevamente. - La expresión textExpression se evalúa una vez más.
- Si textExpression se evalúa como
true
, el cuerpo del bucle dentro de lado
declaración se ejecuta nuevamente. - Este proceso continúa hasta que textExpression se evalúa como
false
. Entonces el bucle se detiene.
Diagrama de flujo del bucle do… while

Veamos el funcionamiento de do… while
loop.
Ejemplo 3: Mostrar números del 1 al 5
// Java Program to display numbers from 1 to 5 import java.util.Scanner; // Program to find the sum of natural numbers from 1 to 100. class Main ( public static void main(String() args) ( int i = 1, n = 5; // do… while loop from 1 to 5 do ( System.out.println(i); i++; ) while(i <= n); ) )
Salida
1 2 3 4 5
Así es como funciona este programa.
Iteración | Variable | Condición: i <= n | Acción |
---|---|---|---|
i = 1 n = 5 | Sin revisar | Se imprime 1. i aumenta a 2 . |
|
Primero | i = 2 n = 5 | true | Se imprime 2. i aumenta a 3 . |
2do | i = 3 n = 5 | true | Se imprime 3. i aumenta a 4 . |
Tercero | i = 4 n = 5 | true | Se imprime 4. i aumenta a 5 . |
Cuarto | i = 5 n = 5 | true | Se imprime 6. i aumenta a 6 . |
Quinto | i = 6 n = 5 | false | El bucle se termina |
Ejemplo 4: Suma de números positivos
// Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; int number = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // do… while loop continues // until entered number is positive do ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) while(number>= 0); System.out.println("Sum = " + sum); input.close(); ) )
Salida 1
Ingrese un número 25 Ingrese un número 9 Ingrese un número 5 Ingrese un número -3 Suma = 39
Here, the user enters a positive number, that number is added to the sum variable. And this process continues until the number is negative. When the number is negative, the loop terminates and displays the sum without adding the negative number.
Output 2
Enter a number -8 Sum is 0
Here, the user enters a negative number. The test condition will be false
but the code inside of the loop executes once.
Infinite while loop
If the condition of a loop is always true
, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true)( // body of loop )
Here is an example of an infinite do… while
loop.
// infinite do… while loop int count = 1; do ( // body of loop ) while(count == 1)
In the above programs, the textExpression is always true
. Hence, the loop body will run for infinite times.
for and while loops
El for
bucle se utiliza cuando se conoce el número de iteraciones. Por ejemplo,
for (let i = 1; i <=5; ++i) ( // body of loop )
Los ciclos Y while
y do… while
se utilizan generalmente cuando se desconoce el número de iteraciones. Por ejemplo,
while (condition) ( // body of loop )