English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (Cola)

Conjuntos Map Java

Conjuntos Java

Entrada y salida Java (I/O)

Lector Java/Writer

Otras temáticas de Java

Java while 和 do...while循环

在本教程中,我们将通过示例学习如何在Java中使用while和do...while循环,并且还将学习while循环在计算机编程中的工作方式

在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为false)为止。例如,

想象一下,我们需要在屏幕上打印一个句子50次。好吧,我们可以通过使用print语句50次(不使用循环)来做到这一点。您需要打印一百万次句子吗?您需要使用循环。使用循环,我们可以只编写一次print语句,然后运行任意次数。

这只是一个简单的示例,展示了循环在计算机编程中的重要性。Java中有3有几种循环类型:for循环,while循环和do-while循环。

Bucle while de Java

Java中while循环的语法为:

while (testExpression) {
    // while循环体中的代码
}

while循环是如何工作的?

在上述语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,

  • while循环内的语句将被执行。

  • 然后,再次评估测试表达式(testExpression)。

这个过程一直进行,直到测试表达式被评估为false。如果测试表达式的计算结果为false,

  • 如果测试表达式为false,则while循环被终止。

While循环流程图

While循环的工作原理

Ejemplo1:while循环

//程序打印行10次
class Loop {
    public static void main(String[] args) {
      
        int i = 1;
	   
        while (i <= 10) {
            System.out.println("行\t" + i);
            ++i;
        }
    }
}

Salida

行 1
行 2
行 3
行 4
行 5
行 6
行 7
行 8
行 9
行 10

在上面的示例中,我们有一个测试表达式(i <= 10)。它检查i的值是否小于或等于10。

最初,此处i的值为1。因此,测试表达式(testExpression)的计算结果为true。因此,将执行while循环内的print语句。

请注意while循环内的语句

 ++i;

该语句在每次迭代中将i值增加1。经过10次迭代后,i的值为11。然后测试表达式(i <= 10)为false时,求和while循环终止。

要了解更多关于测试表达式及其评估方式的信息,请访问Java 关系运算符Java 逻辑运算符

Ejemplo2:Java while循环

//通过编程来查找1到10La suma de los números naturales entre 0 y.
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            suma += i;     // es equivalente a sum = sum + i;
            --i;
        }
	   
        System.out.println("Suma = " + suma);
    }
}

Salida

Suma = 5050

Aquí, tenemos dos variables llamadas sum, i, cuyos valores iniciales son 0 y100。

En cada iteración del bucle while,

  • Asignar un valor a la variable sum: sum + i

  • El valor de i disminuye1

El bucle continúa hasta que el valor de i sea 0.

1st repetición: i = 100, sum = 0+100 = 100, simultáneamente --i = 99
2nd repetición: i = 99, sum = 100+99 = 199, simultáneamente --i = 98
3rd repetición: i = 98, sum = 199+98 = 297, simultáneamente --i = 97
... .. ...
... .. ...
99th repetición: i = 2, sum = 5047+2 = 5049, simultáneamente --i = 1
100th repetición: i = 1, sum = 5049+1 = 5050, simultáneamente --i = 0

Bucle do...while en Java

El bucle do...while es similar al bucle while, pero hay una diferencia clave, ya que se ejecuta el cuerpo del bucle una vez antes de verificar la expresión de prueba.

Esta es la sintaxis del bucle do...while.

do {
   // El código dentro del bucle do...while
} while (testExpression);

¿Cómo funciona el bucle do...while?

El cuerpo del bucle do...while se ejecuta una vez (antes de verificar la expresión de prueba). Solo así se verificará la expresión de prueba.

Si la expresión de prueba se calcula como true, se ejecuta el código del cuerpo del bucle y se vuelve a calcular la expresión de prueba. Este proceso continúa hasta que la expresión de prueba se calcule como false.

Cuando la expresión de prueba es false, el bucle do..while finaliza.

Diagrama de flujo del bucle do ... while

Flujo de trabajo del bucle do ... while

Ejemplo3:do ... while bucle

El siguiente programa calcula la suma de los números ingresados por el usuario hasta que ingrese 0.

Para aceptar la entrada del usuario, utilizamos el objeto Scanner. Para obtener más información sobre Scanner, visiteJava Scanner

import java.util.Scanner;
class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //Crear un objeto de la clase Scanner
        Scanner input = new Scanner(System.in);
        do {
            //Aceptar la entrada del usuario
            System.out.print("Ingrese un número: ");
            number = input.nextDouble();
            suma += number;
        } while (number != 0.0);  //Expresión de prueba
	   
        System.out.println("Suma = " + suma);
    }
}

Salida

Ingrese un número: 2.5
Ingrese un número: 23.3
Ingrese un número: -4.2
Ingrese un número: 3.4
Ingrese un número: 0
Suma = 25.0

Bucle infinito

Debemos ser cautelosos al usar bucles. Porque si configuramos incorrectamente la expresión de prueba para que nunca sea falsa, los bucles while y do ... while seguirán ejecutándose para siempre.

Esto es lo que se conoce como bucle while infinito y do...while. Por ejemplo:

//Bucle while infinito
while (true) {
   //Cuerpo del bucle while
}

Vamos a dar un ejemplo

//Bucle while infinito
int i = 100;
while (i == 100) {
   System.out.print("Hey!");
}

El funcionamiento del bucle do...while infinito es similar al del bucle while.