Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen und beteilige dich an der Diskussion! (+)
Begründung: Artikel teilweise inhaltlich so falsch, dass es weh tut. Form eines Schüleraufsatzes
Eine Endlosschleife im Sinne der Informatik ist eine Schleife, die nach jeder Abarbeitung erneut abgearbeitet wird, falls nicht äußere Einflüsse dies unterbinden. Äußere Einflüsse sind solche, die im idealtypischen Ablauf des Programms nicht vorkommen, beispielsweise das Abschalten des Computers.
Endlosschleifen können bei der Programmierung vorkommen. Diese sind Schleifen, deren Abbruchbedingung nie eintritt. So ist zum Beispiel die Steuerung der Maus eine gewollte Endlosschleife, die auf eine Bewegung wartet und dann dementsprechend reagiert, dieses Verhalten wird als Polling bezeichnet. Bei Multitasking-Systemen laufen mehrere Endlosschleifen zur Abfrage von Benutzereingaben parallel, bei einem Singletasking-System nur eine.
Fehlerhafte Abbruchbedingungen verursachen häufig unbeabsichtigte Endlosschleifen. Je nach Programm kann sich ein solcher Fehler unterschiedlich äußern. Falls innerhalb des Schleifenrumpfs wiederholte Ressourcen, wie z. B. Hauptspeicher, belegt und nicht wieder freigegeben werde, so führt dies im Allgemeinen zu einem Speicherleck und einem Programmabbruch. Endlosschleifen können sich aber auch durch simple Inaktivität des Programms dem Benutzer gegenüber äußern.
Ein paar Beispiele:
1. eine Iteration, die versäumt, die Abbruchbedingung zu erreichen, z. B.
i <-- 0 while (i < 5) ... (man vergisst i zu erhöhen) end
oder
float f = 0.1 while (f != 1.0) ... f += 0.1 //Da 0.1 binär periodisch ist, wird 1.0 nie exakt erreicht end
2. eine Rekursion, die es versäumt, die Abbruchbedingung zu erreichen, z. B.
(define (fakultät N) ; man vergisst, den Basisfall (<= N 1) o.ä. zu prüfen (* N (fakultät (- N 1))))
3. der einfachste Fall einer Endlosschleife wird solange ausgeführt, wie 'true' wahr ist - also für immer...
while (true)
{
...
}
4. die Schleife wird immer durchlaufen, da keine Abbruchbedingung vorhanden ist
loop ... end loop
Manche Batchviren nutzen die Endlosschleife, um Computer lahm zu legen. Dabei öffnet sich der Virus selbst. Dieser geöffnete Virus öffnet sich wiederum selbst und dieser öffnet sich dann ein weiteres Mal....Dieser Vorgang kann nur unterbrochen werden, wenn man die Energiezufuhr des Computers unterbricht.
Außerhalb der Informatik bezeichnet eine Endlosschleife eine Rekursion, also etwas prinzipiell Wiederkehrendes, bis es von außen (aber nicht notwendig) unterbrochen wird.
Auch geometrische Figuren sind mögliche Endlosschleifen, wie zum Beispiel der Kreis oder das Möbiusband. Hierzu stellt man sich vor, sich auf dem Objekt zu bewegen. Eine vollständige Umrundung des Objekts kehrt nun immer wieder.
In der Tonbandtechnik ist eine Endlosschleife bei normalen MCs nicht möglich, lediglich 8-Spur-Kassetten verfügen über ein umlaufendes Endlosband.
Eine Rückkopplung ist eine Endlosschleife, da das immer gleiche Schallmuster erst von den Lautsprechern ausgegeben, vom Mikrofon wieder aufgenommen, und so wiederkehrend ausgegeben wird.
In Glossaren oder Lexika wird eine Endlosschleife manchmal rekursiv – anhand des praktischen Beispiels ihrer selbst – erläutert:
In der deutschen Umgangssprache wird der Begriff Endlosschleife bisweilen benutzt, um einen Vorgang zu beschreiben, bei dem sich „die Katze in den Schwanz beißt“, zum Beispiel: