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

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java Liste (List)

Java Queue (file d'attente)

Java Map collections

Java Set collections

Java entrée/sortie (I/O)

Liseur Java/Writer

Autres sujets Java

Java while 和 do...while循环

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

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

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

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

Boucles while Java

Java 中 while循环的语法为:

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

while循环如何工作?

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

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

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

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

  • 则while循环被终止。

While循环流程图

While循环的工作

Exemple1: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\n

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

请注意while循环内的语句

 ++i;

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

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

Exemple2:Java while循环

//编程以查找1到达10La somme des nombres naturels entre 0 et.
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            sum += i;     // Équivaut à sum = sum + i;
            --i;
        }
	   
        System.out.println("Sum = " + sum);
    }
}

Output

Sum = 5050

Ici, nous avons deux variables nommées sum, i, dont les valeurs initiales sont respectivement 0 et100。

Dans chaque itération de la boucle while,

  • Allouer une valeur à la variable sum : sum + i

  • La valeur de i diminue1

La boucle continue jusqu'à ce que la valeur de i soit égale à 0.

1ème répétition: i = 100, sum = 0+100 = 100, en même temps --i = 99
2ème répétition: i = 99, sum = 100+99 = 199, en même temps --i = 98
3ème répétition: i = 98, sum = 199+98 = 297, en même temps --i = 97
... .. ...
... .. ...
99ème répétition: i = 2, sum = 5047+2 = 5049, en même temps --i = 1
100ème répétition: i = 1, sum = 5049+1 = 5050, en même temps --i = 0

Boucle do...while en Java

La boucle do...while est similaire à la boucle while, mais il y a une différence clé, à savoir que le corps de la boucle est exécuté une fois avant de vérifier l'expression de test.

Voici la syntaxe de la boucle do...while.

do {
   // Le code à l'intérieur de la boucle do...while
} while (testExpression);

Comment fonctionne la boucle do...while ?

Le corps de la boucle do...while est exécuté une fois (avant de vérifier l'expression de test). Ce n'est que ainsi que l'expression de test sera vérifiée.

Si l'expression de test est calculée comme true, exécutez le code du corps de la boucle et recalculez l'expression de test. Ce processus se poursuit jusqu'à ce que l'expression de test soit calculée comme false.

Lorsque l'expression de test est false, la boucle do..while se termine.

Schéma de flux de la boucle do ... while

Schéma de workflow de la boucle do ... while

Exemple3:do ... while boucle

Le programme suivant calcule la somme des nombres entrés par l'utilisateur jusqu'à ce que l'utilisateur entre 0.

Pour accepter l'entrée de l'utilisateur, nous avons utilisé l'objet Scanner. Pour plus d'informations sur Scanner, veuillez consulterJava Scanner\n

import java.util.Scanner;
class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //Créer un objet de la classe Scanner
        Scanner input = new Scanner(System.in);
        do {
            //Accepter l'entrée de l'utilisateur
            System.out.print("Entrez un nombre: \n");
            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 so that it never becomes 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 mode of the infinite do...while loop is similar to the while loop.