EMZETT.
Login

Statements (Anweisungen)

Kurz: Eine einzelne, vollständige Aktion im Code, die etwas bewirkt — z. B. eine Variable zuweisen, eine Methode aufrufen oder eine Schleife starten. Ein Programm besteht aus einer Abfolge solcher Statements.

Genauer: Anders als ein Ausdruck (der zu einem Wert ausgewertet wird, z. B. 2 + 3) bewirkt ein Statement eine Aktion und liefert selbst keinen wiederverwendbaren Wert zurück. Statements werden in den meisten Sprachen durch ein Semikolon oder einen Zeilenumbruch voneinander getrennt und nacheinander in der Reihenfolge ausgeführt, in der sie im Code stehen — sofern keine Kontrollstruktur wie if…else oder eine Schleife den Ablauf verändert.

Im Detail

Der Unterschied zwischen Ausdruck und Statement lässt sich gut an folgendem Beispiel zeigen:

2 + 3            # Ausdruck - wird zu 5 ausgewertet, aber bewirkt sonst nichts
x = 2 + 3         # Statement - führt eine Zuweisung durch (die Aktion "x setzen")

Ein Statement “tut etwas” (verändert den Programmzustand, gibt etwas aus, ruft eine Funktion mit Seiteneffekt auf), während ein reiner Ausdruck nur zu einem Wert ausgewertet wird, ohne von sich aus etwas zu bewirken. In der Praxis vermischt sich das häufig — ein Funktionsaufruf-Statement wie berechneUndSpeichere(x) enthält selbst wieder Ausdrücke (die Argumente), und manche Sprachen (z. B. moderne funktionale oder Skriptsprachen) verwischen die Grenze zwischen beiden noch weiter, indem sie fast alles als Ausdruck behandeln.

Typische Statement-Kategorien in den meisten Sprachen:

  • Deklarationen: eine neue Variable/Funktion/Klasse anlegen
  • Zuweisungen: einer bestehenden Variable einen neuen Wert geben
  • Kontrollfluss-Statements: if/else, Schleifen, return, break/continue
  • Ausdrucks-Statements: ein Funktionsaufruf, dessen Rückgabewert ignoriert wird, aber dessen Seiteneffekt (z. B. eine Ausgabe) gewollt ist

Die Reihenfolge, in der Statements normalerweise ausgeführt werden — von oben nach unten, eines nach dem anderen — nennt man den sequenziellen Kontrollfluss. Kontrollstrukturen wie if…else oder Schleifen durchbrechen diese starre Reihenfolge gezielt, indem sie bestimmte Statements überspringen, wiederholen oder bedingt ausführen — genau das macht aus einer reinen Abfolge von Anweisungen ein tatsächlich “intelligentes” Programm.

Siehe auch: Print Variables, if…else