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

Tutoriais Básicos de Java

Controle de fluxo de Java

Array de Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Lista (List) de Java

Fila (Queue) de Java

Conjunto Map de Java

Conjunto Set de Java

Entrada e saída de Java (I/O)

Reader de Java/Writer

Outros tópicos de Java

Java while 和 do...while循环

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

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

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

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

Loop while Java

Java 中 while循环的语法为:

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

while循环如何工作?

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

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

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

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

  • 则while循环被终止。

While循环流程图

While循环的工作

Exemplo1:while循环

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

Output

行 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 逻辑运算符

Exemplo2:Java while循环

//编程以查找1到10A soma dos números naturais entre 0 e.
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            sum += i;     // É equivalente a sum = sum + i;
            --i;
        }
	   
        System.out.println("Sum = " + sum);
    }
}

Output

Sum = 5050

Aqui, temos duas variáveis chamadas sum, i, cujos valores iniciais são 0 e100。

Em cada iteração do loop while,

  • Atribuir valor à variável sum: sum + i

  • O valor de i diminui1

O loop continua até que o valor de i seja igual a 0.

1st repetição: i = 100, sum = 0+100 = 100, ao mesmo tempo --i = 99
2nd repetição: i = 99, sum = 100+99 = 199, ao mesmo tempo --i = 98
3rd repetição: i = 98, sum = 199+98 = 297, ao mesmo tempo --i = 97
... .. ...
... .. ...
99th repetição: i = 2, sum = 5047+2 = 5049, ao mesmo tempo --i = 1
100th repetição: i = 1, sum = 5049+1 = 5050, ao mesmo tempo --i = 0

Loop do...while em Java

O do...while loop é semelhante ao while loop, mas há uma diferença crucial, pois o corpo do loop é executado uma vez antes de verificar a expressão de teste.

Esta é a sintaxe do do...while loop.

do {
   // Código dentro do corpo do do...while loop
} while (testExpression);

Como o do...while loop funciona?

O corpo do do...while loop é executado uma vez (antes de verificar a expressão de teste). Apenas assim, a expressão de teste será verificada.

Se a expressão de teste for calculada como true, execute o código do corpo do loop e recalcule a expressão de teste. Este processo continua até que a expressão de teste seja calculada como false.

Quando a expressão de teste for false, o loop do...while termina.

Diagrama de fluxo do do ... while loop

Diagrama de fluxo do do ... while loop

Exemplo3:do ... while loop

O programa a seguir calcula a soma dos números digitados pelo usuário até que ele insira 0.

Para aceitar a entrada do usuário, usamos o objeto Scanner. Para obter mais informações sobre Scanner, acesseJava Scanner

import java.util.Scanner;
class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //Criar um objeto da classe Scanner
        Scanner input = new Scanner(System.in);
        do {
            //Aceitar a entrada do usuário
            System.out.print("Insira um número: ");
            number = input.nextDouble();
            sum += number;
        } while (number != 0.0);  //Test expression
	   
        System.out.println("Sum = " + sum);
    }
}

Output

Enter a number: 2.5
Enter a number: 23.3
Enter a number: -4.2
Enter a number: 3.4
Enter a number: 0
Sum = 25.0

Infinite loop

We should always be careful when using loops. This is because if we set the test expression incorrectly, making it never false, then the while and do ... while loops will run indefinitely.

This is what is called infinite while and do...while loops. For example,

//Infinite while loop
while (true) {
   //While loop body
}

Let's take another example

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

The working principle of the infinite do...while loop is similar to the while loop.