Java while y do ... while Loop

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 whiley do… whilebucles.

Bucle while de Java

El whilebucle de Java se utiliza para ejecutar un código específico hasta que se cumpla una determinada condición. La sintaxis del whilebucle es:

 while (testExpression) ( // body of loop )

Aquí,

  1. Un whilebucle evalúa la expresión textExpression dentro del paréntesis ().
  2. Si textExpression se evalúa como true, whilese ejecuta el código dentro del bucle.
  3. La expresión textExpression se evalúa de nuevo.
  4. Este proceso continúa hasta que textExpression es false.
  5. 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

Diagrama de flujo de Java while loop

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 whileciclo 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 sumvariable.

Cuando el usuario ingresa un número negativo, el ciclo termina. Finalmente, se muestra la suma total.

Java do … while loop

El do… whilebucle es similar al bucle while. Sin embargo, el cuerpo del do… whilebucle se ejecuta una vez antes de que se verifique la expresión de prueba. Por ejemplo,

 do ( // body of loop ) while(textExpression)

Aquí,

  1. El cuerpo del bucle se ejecuta al principio. Entonces se evalúa la expresión textExpression .
  2. Si textExpression se evalúa como true, el cuerpo del bucle dentro de la dodeclaración se ejecuta nuevamente.
  3. La expresión textExpression se evalúa una vez más.
  4. Si textExpression se evalúa como true, el cuerpo del bucle dentro de la dodeclaración se ejecuta nuevamente.
  5. Este proceso continúa hasta que textExpression se evalúa como false. Entonces el bucle se detiene.

Diagrama de flujo del bucle do… while

Diagrama de flujo de Java do while loop

Veamos el funcionamiento de do… whileloop.

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 forbucle 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 whiley do… whilese utilizan generalmente cuando se desconoce el número de iteraciones. Por ejemplo,

 while (condition) ( // body of loop )

Articulos interesantes...