English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,我们将借助示例来学习如何在Java中使用while和do...while循环,并且还将学习while循环在计算机编程中的工作方式
在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为false)为止。例如,
想象一下,我们需要在屏幕上打印一个句子50次。好吧,我们可以通过使用print语句50次(不使用循环)来做到这一点。您需要打印一百万次句子怎么样?您需要使用循环。使用循环,我们可以只编写一次print语句,然后运行任意次数。
这只是一个简单的示例,显示了循环在计算机编程中的重要性。Java中有3种循环类型:for 循环,while循环和do-while循环。
Java 中 while循环的语法为:
while (testExpression) { // while循环体中的代码 }
在以上语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,
while循环内的语句将被执行。
然后,再次评估测试表达式(testExpression)。
这个过程一直进行到测试表达式被评估为false为止。如果测试表达式的计算结果为false,
则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
//编程以查找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
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);
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.
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
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.