Endlosschleife

Endlosschleife

Endlosschleifen in der Informatik sind Schleifen, die nach jeder Abarbeitung erneut abgearbeitet werden, falls die Ausführung nicht durch äußere Einflüsse abgebrochen wird. Äußere Einflüsse sind dabei solche, die im idealtypischen Ablauf des Programms nicht vorkommen, beispielsweise das Abschalten des Computers.

Inhaltsverzeichnis

Programmierung

Endlosschleifen können bei der Programmierung durch Fehler entstehen, wenn die Abbruchbedingung nicht definiert ist oder nicht eintreten kann. Jedoch ist zum Beispiel die Abfrage der Maus eine gewollte Endlosschleife, die auf eine Bewegung wartet und bei Bewegungen eine Reaktion auslöst, dieses Verhalten wird als Polling bezeichnet. Bei Multitasking-Systemen laufen meist mehrere Endlosschleifen („Event-Schleifen“) zur Abfrage von Benutzereingaben parallel ab, bei einem Singletasking-System läuft meist nur eine gleichzeitig ab.

Fehlerhafte Abbruchbedingungen verursachen häufig unbeabsichtigte Endlosschleifen. Je nach Programm kann sich ein solcher Fehler unterschiedlich äußern. Falls innerhalb des Schleifenrumpfs wiederholt Ressourcen – wie beispielsweise Hauptspeicher – belegt und nicht wieder freigegeben werden, so führt dies im Allgemeinen zu einem Speicherleck. Endlosschleifen können sich aber auch durch simple Inaktivität des Programms dem Benutzer gegenüber äußern („Einfrieren“).

Genaugenommen ist zu unterscheiden, ob eine Schleife kein Abbruchkriterium hat, ob es nie erfüllt ist oder ob dieses nur für bestimmte Eingangsparameter der Fall ist. Der erste Fall wird entweder ganz bewusst gewählt oder kann durch Debuggen des Programms einfach gefunden werden. Der zweite verhält sich konzeptionell ähnlich, der letzte Fall ist fast immer unerwünscht und kann sehr schwer zu finden sein, da er eventuell nur sehr selten eintritt. Er tritt beispielsweise ein, wenn der Zustand des Programms zu Beginn der Schleife die Schleifeninvariante nicht erfüllt.

Beispiele

  • eine Iteration, die keine Abbruchbedingung erreicht,
  // Programmiersprache: Delphi (Object Pascal)
   i := 0;
 
   while i < 10 do
     begin
     // ...
     // Die Abbruchbedingung wird nicht erreicht, da sich der Wert der Variablen i nicht ändert,
     // wenn der Programmierer eine Instruktion wie i:=i+1 am Ende der Schleife vergessen hat
     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
  • eine Rekursion, die keine Abbruchbedingung erreicht. In diesem Fall stürzt das Programm meist wegen eines Stapelüberlaufs nach einiger Zeit ab.
     (define (fakultät N)
       ; man vergisst, den Basisfall (<= N 1) o. ä. zu prüfen
       (* N (fakultät (- N 1)))
     )
  • der einfachste Fall einer Endlosschleife wird solange ausgeführt, wie 'true' wahr ist – also für immer. (Es sei denn, es befinden sich innerhalb der Schleife eine oder mehrere break-Anweisungen, dann ist es keine „echte“ Endlosschleife.)
     while (true)
     {
       ...
     }
  • es wurde keine Abbruchbedingung definiert, daher wird die Schleife immer durchlaufen
     loop
       ...
     end loop

Andere Beispiele

Einfache Batch-Programme mit Schadfunktion nutzen die Endlosschleife, um den Computer durch eine hohe Ressourcenauslastung zum Absturz zu bringen. Dabei ruft sich die Batchdatei in einem neuen Prozess neu auf. Dieser Vorgang wiederholt sich endlos, sodass die neu gestarteten Prozesse und das Kernel-Handling derselben die sonstigen Anwendungen und Prozesse verlangsamen. Reagiert die Eingabe nicht mehr, so gleicht dies einem Systemabsturz und der Rechner muss durch einen Reset neu gestartet werden.

Auch geometrische Figuren sind mögliche Endlosschleifen, wie zum Beispiel der Kreis oder das Möbiusband.

Eine akustische 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:

Endlosschleife – siehe Endlosschleife

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:

  • man landet bei einer Hotline nach Auswahl aller zutreffenden Optionen wieder am Ausgangspunkt (siehe auch Buchbinder Wanninger von Karl Valentin).
  • eine Diskussion „dreht sich im Kreis“, und scheint ohne zusätzliche, neue Argumente in absehbarer Zeit zu keinem Ergebnis zu führen.
  • in einem „Teufelskreis“ ist die Folge eines Problems gleichzeitig dessen Ursache, wodurch eine Lösung des Problems unmöglich ist.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Endlosschleife — Ẹnd|los|schlei|fe, die (EDV): Schleife, deren Abbruchbedingung niemals eintritt, sodass sie endlos weiterläuft. * * * Endlosschleife,   Bezeichnung für ein Programmsegment, das ohne Unterbrechung immer wieder von vorne durchlaufen wird. In der… …   Universal-Lexikon

  • Endlosschleife — Ẹnd|los|schlei|fe (EDV) …   Die deutsche Rechtschreibung

  • Rekursive Endlosschleife — Dieser Artikel erläutert die Technik der rekursiven Definition; zum Begriff rekursive Menge siehe entscheidbar. Als Rekursion (lat. recurrere „zurücklaufen“) bezeichnet man die Technik in Mathematik, Logik und Informatik, eine Funktion durch sich …   Deutsch Wikipedia

  • Absturz (Informatik) — Von einem Absturz im Zusammenhang mit Computern spricht man, wenn ein Programm auf unvorhergesehene Weise beendet wird oder nicht mehr in der vorhergesehenen Weise auf Interaktionen des Benutzers reagiert. Ist das abstürzende Programm Teil des… …   Deutsch Wikipedia

  • Computerabsturz — Von einem Absturz im Zusammenhang mit Computern spricht man, wenn ein Programm auf unvorhergesehene Weise beendet wird oder nicht mehr in der vorhergesehenen Weise auf Interaktionen des Benutzers reagiert. Ist das abstürzende Programm Teil des… …   Deutsch Wikipedia

  • Programmabsturz — Von einem Absturz im Zusammenhang mit Computern spricht man, wenn ein Programm auf unvorhergesehene Weise beendet wird oder nicht mehr in der vorhergesehenen Weise auf Interaktionen des Benutzers reagiert. Ist das abstürzende Programm Teil des… …   Deutsch Wikipedia

  • Systemabsturz — Von einem Absturz im Zusammenhang mit Computern spricht man, wenn ein Programm auf unvorhergesehene Weise beendet wird oder nicht mehr in der vorhergesehenen Weise auf Interaktionen des Benutzers reagiert. Ist das abstürzende Programm Teil des… …   Deutsch Wikipedia

  • APIPA — Zeroconf (Zero Configuration Networking, auch Automatic Private IP Addressing, kurz APIPA, oder Auto IP) ist eine Technik zur konfigurationsfreien Vernetzung von Geräten in lokalen Rechnernetzen. Die Motivation bei Zeroconf ist, einen Mechanismus …   Deutsch Wikipedia

  • Abbruchkriterium — In der Informatik ist eine Abbruchbedingung eine Bedingung, die erfüllt sein muss, damit ein Vorgang beendet wird. Jede Schleife oder rekursive Funktion benötigt deswegen eine Abbruchbedingung. Die Existenz einer Abbruchbedingung garantiert aber… …   Deutsch Wikipedia

  • Abspritzen — Die Ejakulation (lateinisch eiaculari „herausspritzen“) oder der Samenerguss ist ein physiologischer Vorgang, der zum stoßweisen Herausspritzen des Spermas führt. Im weiteren Sinn wird auch der Erguss ohne Spermien als Ejakulation bezeichnet, bei …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”