Endlosschleife
Eine Schleife, deren Bedingung nie falsch wird — entweder ein ernster Fehler oder genau das Gewollte.
Die unbeabsichtigte Variante entsteht, wenn der Zähler sein Endziel nie erreicht, die Abbruchbedingung die falsche Variable vergleicht, oder Rundungsfehler bei Gleitkommazahlen dafür sorgen, dass i != 1.0 auf ewig wahr bleibt. Das Symptom: ein Thread, der einen Kern zu 100 % auslastet, während der Rest des Programms noch lebendig wirkt. Ein Deadlock sieht von außen ähnlich aus, verbraucht aber überhaupt keine CPU — der schnellste Weg, beide auseinanderzuhalten.
Die beabsichtigte Variante ist häufiger, als man denkt: while (true) mit einem break darin ist die Standardform von Event-Loops, der Accept-Schleife eines Servers und eingebetteten Systemen, die nie enden sollen. Dass sich automatisch nicht entscheiden lässt, welche Variante man vor sich hat, ist keine Lücke im Werkzeugkasten, sondern ein bewiesenes Ergebnis — siehe das Halteproblem.