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

Java Grund教程

Java Prozesssteuerung

Java Array

Java objektorientiert(I)

Java objektorientiert(II)

Java objektorientiert(III)

Java Ausnahmebehandlung

Java Liste(List)

Java Queue(Koordinate)

Java Map Sammlung

Java Set Sammlung

Java Eingabe/Ausgabe(I/O)

Java Reader/Writer

Java andere Themen

Java while 和 do...while-Schleife

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

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

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

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

Java while-Schleife

Java 中 while-Schleife的语法为:

while (testExpression) {
    // while-Schleife体内的代码
}

while-Schleife如何工作?

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

  • while-Schleife内的语句将被执行。

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

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

  • 则while-Schleife wird beendet。

While-Schleife-Flussdiagramm

While-Schleife的工作原理

Beispiel1:while-Schleife

//程序打印行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ältnisoperatorenJava logische Operatoren

Beispiel2:Java while-Schleife

//编程以查找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

Java do... while-Schleife

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);

Wie funktioniert die do...while-Schleife?

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.

Flussdiagramm der do ... while-Schleife

Flussdiagramm der do ... while-Schleife

Beispiel3:do ... while-Schleife

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

Unendliche Schleife

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.