Kontrollstrukturen

Fallunterscheidungen gehören zu den wichtigsten Kontrollstrukturen, um Abläufe von Anweisungen zu beeinflussen oder um Ergebnisse in Abhängigkeit von Inhalten ausgewählter Felder zu ermitteln. Sie erlauben einer Funktion, auf unterschiedliche Zustände zu reagieren.

In NX lassen sich dafür die Ergebnisse logischer Ausdrücke nutzen. Die einfachste Form des if-Statements setzt sich aus einer Bedingung und einer Anweisung zusammen.

if Bedingung then Anweisung

Letztere wird ausschließlich in den Fällen ausgeführt, in denen die Bedingung erfüllt ist.

if Index > 3 then 1

NX ergänzt bei dieser Eingabe automatisch ein end am Ende der Formel.

Kopie_von_Handbuch_komplett_html_758f7e71
Eine einfache »if«-Anweisung.

Verzweigungen dienen zur Ermittlung der auszuführenden Programmabschnitte. Sie enthalten ebenfalls eine Bedingung, aber zwei Anweisungs-Abschnitte. Als erstes erfolgt die Auswertung der Bedingung. Trifft sie zu, erfolgt anschließend die Ausführung der ersten Anweisungsfolge. Ansonsten wird der zweite Codeabschnitt ausgeführt.

if Bedingung then Anweisung else alternative Anweisung

Kopie_von_Handbuch_komplett_html_f47dde12
Eine einfache Verzweigung.

Fallunterscheidungen lassen sich auch ineinander verschachteln.

Kopie_von_Handbuch_komplett_html_7030e865
Ineinander verschachtelte Fallunterscheidungen.

Kopie_von_Handbuch_komplett_html_5cb266da
Die Darstellung im Formeleditor.

Der Typ der Ergebnisse der then- und else-Abschnitte muss übereinstimmen.

Anstelle verschachtelter if-Anweisungen ist es häufig möglich, switch-Anweisungen zu benutzen.

Kopie_von_Handbuch_komplett_html_9c6a5507

 

Kopie_von_Handbuch_komplett_html_5e76021a
Eine »switch«-Anweisung und ihre Resultate.

Für die Anzahl an case-Anweisungen gibt es keinerlei Beschränkungen. Wie bei der if-Anweisung müssen sämtliche Resultate vom gleichen Typ sein. Die Resultate wiederum können sich aus beliebig vielen Ausdrücken zusammensetzen, solange sie nur den gleichen Ergebnistyp liefern. NX bemüht sich, bei einer Vielzahl von Ausdrücken dies mit Hilfe von Klammern zu gruppieren.


Schleifen

Zusammen mit den Fallunterscheidungen gehören Schleifen (Wiederholung, Loop) zu den wichtigsten Bestandteilen von NX. Sie ermöglichen die mehrfache Ausführung von Anweisungsfolgen. Sie bestehen aus je nach Art aus einer Laufbedingung oder Abbruchbedingung und dem Schleifenrumpf oder Schleifenkörper. Die Anweisungen im Schleifenrumpf werden so lange wiederholt, wie die Laufbedingung erfüllt ist bzw. bis die Abbruchbedingung eingetreten ist.

Bei den for-Schleifen kennt NX zwei Varianten, die Bereichsform und die Mengenform. Die Anwendung der Bereichsform erfolgt meistens in den Fällen, in denen die Anzahl der Durchläufe vorab bekannt ist. Auch hier kennt NX zwei Typen. Die eine Form verwendet das Schlüsselwort range

for laufindex in range (Schleifenbeginn, Schleifende) do Anweisung end

Kopie_von_Handbuch_komplett_html_e169ba72
Die »range«-Form einer »for«-Schleife.

Dabei ist zu beachten: Der Wert von Schleifenbeginn ist inklusiv, der von Schleifenende dagegen exklusiv.

Kopie_von_Handbuch_komplett_html_149fd23a
Ein Ergebnis der »range«-Form einer »for«-Schleife.

Die range-Form erlaubt auch die Angabe einer Schrittweite.

for laufindex in range (Schleifenbeginn, Schleifende, Schrittweite) do Anweisung end

Kopie_von_Handbuch_komplett_html_be926dc0

 

Kopie_von_Handbuch_komplett_html_2d9b632c

 

Die »range«-Form einer »for«-Schleife mit Angabe einer Schrittweite.

Zu den gleichen Ergebnissen führt die Formulierung mit Hilfe der Schlüsselworte from, to und step.

for laufindex from Schleifenbeginn to Schleifende step Schrittweite do Anweisungen end

Kopie_von_Handbuch_komplett_html_6f9a4623

 

Kopie_von_Handbuch_komplett_html_d7eb2e4c
Eine »for«-Schleife in der Formulierung mit den Schlüsselworten »from«, »to« und »step«.

Die zweite Variante der for-Schleife lässt sich für Operationen auf Inhalte von Arrays nutzen. Diese können beispielsweise Ergebnisse von select-Abfragen sein. In einer Tabelle sind im Feld Beliebig verschiedene Zahlen erfasst

Kopie_von_Handbuch_komplett_html_a99bdc81

Kopie_von_Handbuch_komplett_html_2a5c8fc9

 

Kopie_von_Handbuch_komplett_html_d1bc96a0

Eine »for«-Schleife über die Elemente eines Arrays und ihr Resultat.

Bei der while-Schleife erfolgt die Überprüfung der Abbruchbedingung am Anfang.

while (Bedingung = true) do Anweisungen end

Schleifen lassen sich beliebig verschachteln. Innerhalb einer äußeren Schleife kann sich eine innere Schleife befinden.