English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,我们将借助示例来学习如何在Java中使用while和do...while循环,并且还将学习while-Schleife在计算机编程中的工作方式
在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为false)为止。例如,
想象一下,我们需要在屏幕上打印一个句子50次。好吧,我们可以通过使用print语句50次(不使用循环)来做到这一点。您需要打印一百万次句子怎么样?您需要使用循环。使用循环,我们可以只编写一次print语句,然后运行任意次数。
这只是一个简单的示例,显示了循环在计算机编程中的重要性。Java中有3种循环类型:for 循环,while-Schleife和do-while-Schleife。
Java 中 while-Schleife的语法为:
while (testExpression) { // while-Schleife体内的代码 }
在以上语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,
while-Schleife内的语句将被执行。
然后,再次评估测试表达式(testExpression)。
这个过程一直进行到测试表达式被评估为false为止。如果测试表达式的计算结果为false,
则while-Schleife wird beendet。
//程序打印行10次 class Loop { public static void main(String[] args) { int i = 1; while (i <= 10) { System.out.println("行 " + i); ++i; } } }
Ausgabe:
行 1 行 2 行 3 行 4 行 5 行 6 行 7 行 8 行 9 行 10
在上面的示例中,我们有一个测试表达式(i <= 10)。它检查i的值是否小于或等于10。
最初,此处i的值为1。因此,测试表达式(testExpression)的计算结果为true。因此,将执行while-Schleife内的print语句。
请注意while-Schleife内的语句
++i;
该语句在每次迭代中将i值增加1。经过10次迭代后,i的值为11。然后测试表达式(i <= 10)为false,求和while-Schleife wird beendet。
更多信息有关测试表达式及其评估方式,请访问Java Verhältnisoperatoren和Java logische Operatoren。
//编程以查找1到10Die Summe der natürlichen Zahlen zwischen 0 und class AssignmentOperator { public static void main(String[] args) { int sum = 0, i = 100; while (i != 0) { summe += i; // entspricht sum = sum + i; --i; } System.out.println("Summe = " + summe); } }
Ausgabe:
Summe = 5050
Hier haben wir zwei Variablen namens sum, i, deren Anfangswerte 0 und100。
In jeder Iteration des while-Zyklus
Wert zuweisen: sum + i
Der Wert von i wird verringert1
Der Zyklus wird fortgesetzt, bis der Wert i 0 ist.
1Wiederholung: i = 100, sum = 0+100 = 100, gleichzeitig --i = 99 2Wiederholung: i = 99, sum = 100+99 = 199, gleichzeitig --i = 98 3Wiederholung: i = 98, sum = 199+98 = 297, gleichzeitig --i = 97 ... .. ... ... .. ... 99Wiederholung: i = 2, sum = 5047+2 = 5049, gleichzeitig --i = 1 100. Wiederholung: i = 1, sum = 5049+1 = 5050, gleichzeitig --i = 0
Die do...while-Schleife ähnelt der while-Schleife, aber es gibt einen entscheidenden Unterschied, nämlich dass der Schleifenkörper einmal vor der Überprüfung des Testausdrucks ausgeführt wird.
Dies ist die Syntax der do...while-Schleife.
do { // Der Code im do...while-Körper } while (testExpression);
Der Hauptteil der do...while-Schleife wird einmal ausgeführt (vor der Überprüfung des Testausdrucks). Nur so wird der Testausdruck überprüft.
Wenn der Testausdruck als true berechnet wird, wird der Code im Schleifenkörper ausgeführt und der Testausdruck wird erneut berechnet. Dieser Prozess wird fortgesetzt, bis der Testausdruck als false berechnet wird.
Wenn der Testausdruck false ist, wird die do..while-Schleife beendet.
Das folgende Programm berechnet die Summe der von Benutzer eingegebenen Zahlen, bis der Benutzer 0 eingibt.
Um die Eingabe des Benutzers zu akzeptieren, verwenden wir das Scanner-Objekt. Weitere Informationen über Scanner finden Sie unterJava Scanner。
import java.util.Scanner; class Sum { public static void main(String[] args) { Double number, sum = 0.0; //Erstellen Sie ein Objekt der Klasse Scanner Scanner input = new Scanner(System.in); do { //Akzeptieren Sie die Eingabe des Benutzers System.out.print("Geben Sie eine Zahl ein: "); number = input.nextDouble(); summe += number; } while (number != 0.0); //Testausdruck System.out.println("Summe = " + summe); } }
Ausgabe:
Geben Sie eine Zahl ein: 2.5 Geben Sie eine Zahl ein: 23.3 Geben Sie eine Zahl ein: -4.2 Geben Sie eine Zahl ein: 3.4 Geben Sie eine Zahl ein: 0 Summe = 25.0
Bei der Verwendung von Schleifen sollten wir immer vorsichtig sein. Dies liegt daran, dass, wenn wir den Testausdruck falsch einstellen und ihn nie auf false setzen, die while und do ... while-Schleifen unendlich laufen werden.
Das wird als unendliche while und do...while-Schleifen bezeichnet. Zum Beispiel:
//Unendliche while-Schleife while (true) { //while-Schleifenkörper }
Nehmen wir ein weiteres Beispiel
//Unendliche while-Schleife int i = 100; while (i == 100) { System.out.print("Hey!"); }
Die Arbeitsweise der unendlichen do...while-Schleife ist ähnlich wie die des while-Schleife.