Schleifenkonstrukte

Sie sind wichtiger Bestandteil aller Programmiersprachen, auch der objektorientierten, obwohl sie eines der wichtigsten Elemente der „Ablaufprogrammierung“ darstellen. Schleifen sind wichtiges Rationalisierungsmittel, denn sie sparen Programmieraufwand, Speicherplatz und Laufzeit. Sie sind das „Fließband“ der EDV.

Der Einsatz von Schleifen setzt gewisse Bemühungen des Programmierers schon in der Planungsphase seines Projektes voraus. Nein, keine Ablaufpläne und andere furchtbare Dinge aber .. Variable, die sich prinzipiell seriell bearbeiten lassen, sollten immer als Array angelegt werden, denn das ist Voraussetzung für die Verarbeitung in Schleifen.

while…

Die Schleifenstruktur endet abhängig von einer Bedingung. Der grundlegende Aufbau der Schleife ist: while (bedingung) befehl; Oder mehr textlich: Solange die Bedingung erfüllt ist, führe den Befehl aus.

while (Bedingung1)
{
    [Anweisungen1;]
    [if (Bedingung2)[{Anweisungen2;] break;[}]]
    [Anweisungen3;]
    [if (Bedingung3) continue;]
    [Anweisungen4;]
}
  • Die Bedingung(en) müssen so formuliert sein, daß nur true oder false als Ergebnis auftreten können
  • auf die Bedingung kann entweder genau ein Befehl/Zuweisung/Funktionsaufruf folgen; die while-Schleife wäre dann mit einem Semikolon beendet oder
  • auf die Bedingung können mehrer Befehle folgen, dann sind diese einzeln mit Semikolon zu schließen, insgesamt mit geschweiften Klammern zu versehen
  • Die Schleife kann optional mit break vorzeitig verlassen weren. Das vorzeitige Verlassen einer Schleifenstruktur sollte im Programm aber Ausnahme sein. Ein möglicher, legitimer Fall ist das Auftretens eines Fehlers.
  • Innerhalb der Schleife kann eine Befehlsfolge abhängig von einer Bedingung mit continue übersprungen werden, danach wird die Schleife vom Kopf her fortgesetzt
  • Die Abbruchbedingung muß so gestaltet sein, daß wirklich ein Abbruch eintreten kann.

do … while

Genauso wie die while-Schleife nur anders: Die Bedingung wird erst am Ende geprüft. Eine wichtige Folge ist, diese Schleife wird in jedem Falle mindestens einmal durchlaufen.

do
{
    [Anweisungen1;]
    [if (Bedingung1)[{Anweisungen2;] break;[}]]
    [Anweisungen3;]
    [if (Bedingung2) continue;]
    [Anweisungen4;]
}
while (Bedingung3);

for

Wenn die Anzahl erforderlicher Umläufe vorher bekannt ist, hat die For.. -Schleife Vorteile, weil sie schnell und platzsparend abgearbeitet wird. Ihre Syntax stammt aus C und ist für den Basic- oder Pascal-Programmierer (ja, es gibt sogar noch Delphi!) sehr gewöhnungsbedürftig.

for ([var] i = von; i <= bis; i++)
{
   &#91;Anweisungen1;&#93;
   &#91;if (Bedingung1){&#91;Anweisungen2;&#93; break;}&#93;
   &#91;Anweisungen3;&#93;
   &#91;if (Bedingung3) continue;&#93;
   &#91;Anweisungen4;&#93;
}&#91;/javascript&#93;
<ul>
	<li>Die Zählvariable (hier i ), kann direkt in der for-Schleife initialisiert werden, muß aber nicht</li>
	<li>Die Zählschleife kann gleichzeitig weitere Variable enthalten, die mit Komma getrennt aufgezählt werden müssen und jeweils eigene Inkremente oder Dekremente erhalten können.</li>
	<li>'von' und 'bis' stehen für Ganzzahlen, die den Zählbereich begrenzen</li>
	<li>die besondere Schreibung des letzten Gliedes 'i++' ist eine C-Spezialität und meint: i =  i + 1 (Inkrement). Hier könnte z.B. auch erscheinen: i += 3 (Zuwachs in 3er-Schritten), i-- (Abwärts-Zählung)</li>
	<li>Die Zählvariable kann innerhalb der Schleife (ungewollt) manipuliert werden, die Schleife bricht zum falschen Zeitpunkt oder gar nicht mehr ab.</li>
	<li>Optional kann die Schleife mit break vorzeitig verlassen werden, die Arbeit wird nach dem for-Befehl fortgesetzt</li>
	<li>continue bewirkt, daß die innerhalb der Schleife folgenden Befehle übersprungen werden, die Schleife selbst wird aber danach fortgesetzt.</li>
</ul>
<h3><a id="forin" name="forin"></a>for .. in</h3>
Diese Schleife listet alle Eigenschaften eines Objektes auf. Eines der wichtigsten Objekte ist ja <tt>window</tt>, es hat ca. 30 Eigenschaften, deren Namen und Werte auf diese Weise erfragbar sind. Der Test-Aufruf erfolgt in der Form:
for(i in window){alert("Eigenschaft "+i+" = "+window[i]);}

(Hinweis: Evtl. führt dies zu einer starken Auslastung des Browsers, so dass dieser anschließend nicht mehr reagiert)

with …

So was ähnliches wie eine Schleife, die aber prinzipiell nur einmal durchlaufen wird

with Objekt
{
   [Anweisungen;]    zum Beispiel: with Math {a = sqrt(7);...} statt {a = Math.sqrt(7);...}
}

Die with-Konstruktion erleichtert lediglich die Schreibung und erhöht die Ausführungsgeschwindigkeit (sagt man). Der Aufruf von Objekteigenschaften oder-Methoden kann innerhalb der Schleife ohne Nennung des Objektes erfolgen.

Dieses Tutorial wurde bereitgestellt von Prof. Dr. Rolf Hirte, Technische Fachhochschule Wildau. Vielen Dank an dieser Stelle!
Viel Spass beim Lernen und beim Erstellen eigener JavaScripts.