Websiteentwicklung: JavaScript: Programmablauf und Kontrollstrukturen

Einleitung

Bearbeiten

In diesem Kapitel und den folgenden drei Kapiteln über Funktionen, bedingte Anweisungen und Schleifen geht es darum, in welcher Reihenfolge die Anweisungen in einem JavaScript abgearbeitet werden, wie wir darauf Einfluss nehmen können und welche grundlegenden Möglichkeiten JavaScript bietet, um Programme effizient aufzubauen. Mit dem Handwerkszeug dieses Kapitels werden wir zum Beispiel in der Lage sein, kleinere – aber ohne Computer rechenaufwendige – mathematische Aufgaben zu lösen. Um den Stoff dieses Kapitels darzustellen, werden wir schon einmal auf einige Objekte und Formen zugreifen, die detailliert erst in den späteren Kapiteln besprochen werden. Die Wirkungsweise dieser Objekte wird bei dem Code, in welchem sie hier benutzt werden, kurz erklärt. Bitte betrachten Sie die bisher noch nicht besprochenen Teile ansonsten einfach als „Blackbox“ ohne sich mit den Details zu befassen.

Allgemeines

Bearbeiten

Um den Ablauf des Programmes während der Ausführung zu steuern, gibt es die Möglichkeiten

  • Funktionen zu definieren und aufzurufen,
  • Verzweigungen: d. h. nach Bedingungsprüfungen zwischen zwei oder mehreren Möglichkeiten zu wählen und
  • Programmteile innerhalb von Schleifen solange zu wiederholen, bis eine bestimmte Bedingung erfüllt ist.
Definition

Schleifen und Verzweigungen werden unter dem Oberbegriff Kontrollstrukturen zusammengefaßt.

Wikipedia: Kontrollstruktur – enzyklopädische Informationen


Sofern keine dieser in den folgenden Kapiteln besprochenen Kontrollstrukturen im Code verwendet wird, werden JavaScripte planmäßig in Leserichtung, also von links nach rechts und von oben nach unten abgearbeitet, man sagt dazu auch „sequentiell“, d. h. der Reihe nach, eine Anweisung nach der anderen.

Anweisungsblöcke

Bearbeiten

Anweisungsblöcke dienen in JavaScript dazu, bestimmte Anweisungen zusammenzufassen und auch nur im Zusammenhang abzuarbeiten oder im Zusammenhang nicht zu bearbeiten – z. B. nach bedingten Anweisungen.

Ein Anweisungsblock wird durch eine öffnende, geschweifte Klammer begonnen und durch eine schließende geschweifte Klammer beendet. Ob man die Klammer(n) jeweils einzeln in eine bestimmte Zeile setzt, einrückt oder mit dem restlichen Code in eine Zeile schreibt, ist für die Funktion gleichgültig - nicht aber für die Wartbarkeit des Programmes. Vieles, was man zur optischen Gliederung unternimmt, ist aber letzlich von individuellen Vorlieben und Gewohnheiten bestimmt. In den Programmbeispielen dieses Wikibooks werden die geschweiften Klammern mit Absicht etwas großzügig eingesetzt, um die Programme auffällig optisch zu gliedern - dies erleichtert das Lernen. Im praktischen Einsatz muss und wird jeder Programmierer seine eigene Handschrift entwickeln. Im letzten Kapitel haben wir im Programmierbeispiel der Confirm-Box bereits einen Anweisungsblock im Einsatz gesehen.

Die allgemeine Syntax für einen Anweisungsblock lautet einfach:

{
   Anweisung 1;
   Anweisung 2;
   ...
   Anweisung n;
}

Beispiel

Bearbeiten
<SCRIPT type="text/javascript">
  do
  {
     //Ausgabe von Hallo Name mit Prompt-,Alert- und ConfirmBox
     var sName=prompt("Bitte geben Sie Ihren Namen ein :");
     alert("Hallo " + sName + "!");
     var bEnde=confirm("Skript beenden ?");
  }
  while(bEnde != true)
</SCRIPT>

Die Anweisungen zwischen „do“ und „while“ wurden durch „{“ und „}“ zu einem Anweisungsblock geklammert und der gesamte Block so lange immer wieder von neuem ausgeführt, bis die Wiederholbedingung „while(bEnde!=true)“ nicht mehr erfüllt war, das hieß: bis in der Dialogbox auf „OK“ geklickt wurde.

Bedingte Anweisungen

Bearbeiten

Ein einfaches Programm ist eine sequentielle Folge von Anweisungen, d.h. eine wohldefinierte Abfolge von Anweisungen. Um die Abfolge zu verändern, benötigt man Verzweigungen. Dies sind spezielle Anweisungen, sogenannte Verzweigungsanweisungen, welche den Programmablauf mit einer anderen Anweisung fortsetzen. Oft sind solche Verzweigungen an eine Bedingung geknüpft, so dass man dann von bedingten Verzweigungen spricht.


Es gibt verschiedene grundlegende Kontrollstrukturen, welche mithilfe von Verzweigungen sogenannte Alternativen und Schleifen bereitstellen können:

  1. unbedingte Verzweigung (auch: Sprung oder goto)
  2. bedingte Verzweigung (auch: Alternative oder if)
  3. mehrfach bedingte Verzweigung (auch: ifelse)
  4. Auswahl (auch: switch)
  5. Schleife (auch: loop)

Verzweigung

Bearbeiten

Eine Verzweigung setzt die Programmausführung an einem (fast) beliebigen, anderen Ort (=Anweisung) fort. Allerdings gibt es in JavaScript keine unbedingten Verzweigungen, sondern nur bedingte Verzweigungen in Form des ifelse-Konstrukts.

if ( Bedingung )
{
  // Anweisungen falls Bedingung wahr
}
else
{
  // Anweisungen falls Bedingung falsch
}

Die Bedingung ist ein beliebiger Ausdruck, welcher zu einem Booleschen Wahrheitswert ausgewertet werden kann.


Aufgaben + Lösungen

Bearbeiten