Infinite Loop
Teil des Abschnitts Grundlagen der Java-Journey von Coddy — Lektion 49 von 73.
Eine Endlosschleife ist eine Schleife, die nie stoppt, weil ihre Bedingung immer zu true ausgewertet wird. Diese Schleifen können bei jedem Schleifentyp (for, while, do-while) auftreten, sind aber am häufigsten mit while- und do-while-Schleifen assoziiert, weil ihre Bedingungen explizit angegeben sind.
Hier ist ein Beispiel für eine unendliche while-Schleife:
while (true) {
System.out.println("This will print forever!");
}In diesem Fall ist die Bedingung einfach true, die immer zu true ausgewertet wird. Daher wird die Schleife unendlich laufen und die Nachricht immer wieder ausgeben.
Eine weitere Möglichkeit, eine Endlosschleife zu erzeugen, besteht darin, die Bedingung in einer for-Schleife wegzulassen:
for (;;) {
System.out.println("This also prints forever!");
}Hier sind die Initialisierungs-, Bedingungs- und Aktualisierungsteile der for-Schleife alle weggelassen. Dies erzeugt eine Schleife, die ewig läuft.
Unendliche Schleifen können auch unbeabsichtigt auftreten, beispielsweise wenn die Bedingung der Schleife aufgrund eines Logikfehlers immer true ist:
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}In diesem Beispiel wird die Variable i nie inkrementiert, sodass die Bedingung i < 10 immer true ist. Dies erzeugt eine Endlosschleife, die „i is: 0“ unendlich oft ausgibt.
Unendliche Schleifen können in einigen Fällen nützlich sein, wie z. B. in Serverprogrammen, die laufen müssen, bis sie manuell gestoppt werden. Allerdings können sie auch dazu führen, dass Programme einfrieren oder abstürzen, wenn sie nicht richtig gehandhabt werden.
Spickzettel
Eine Endlosschleife ist eine Schleife, die niemals anhält, weil ihre Bedingung immer zu true ausgewertet wird.
Absichtliche unendliche while-Schleife:
while (true) {
System.out.println("This will print forever!");
}Absichtliche unendliche for-Schleife (alle Teile weggelassen):
for (;;) {
System.out.println("This also prints forever!");
}Unabsichtliche Endlosschleife (fehlende Inkrementierung):
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else