!!!Programm-Strukturen

[{TableOfContents }] \\


[Wil Baden|http://home.earthlink.net/~neilbawd/], auf den Sie in der englischsprachigen Literatur oft stoßen, hat in
seinem Beitrag ESCAPING FORTH folgendes dargelegt: Es gibt vier Arten von Steueranweisungen :

* die Abfolge von Anweisungen,
* die Auswahl von Programmteilen,
* die Wiederholung von Anweisungen und Programmteilen,
* den Abbruch.

Die ersten drei Möglichkeiten sind zwingend notwendig und in den älteren Sprachen wie PASCAL	ausschließlich	vorhanden. Entsprechend	steht im volksFORTH eine Anweisung für die Auswahl von Programmteilen zur Verfügung, wobei die Ausführung vom Resultat eines logischen Ausdrucks abhängig gemacht wird:

{{{
flag IF <Anweisungen> THEN 
flag IF <Anweisungen> ELSE <Anweisungen> THEN
}}}

Soll dagegen im Programm ein Rücksprung erfolgen, um Anweisungen wiederho1t auszuführen, wird bei einer gegebenen Anzahl von Durchläufen diese Anweisung eingesetzt, wobei der aktuelle Index über I und J zur Verfügung steht:

{{{
<Grenzen> DO / ?DO <Anweisungen> LOOP 
<Grenzen> DO / ?DO <Anweisungen> <Schrittweite> +LOOP
}}}

Wenn eine Wiederholung von Anweisungen ausgeführt werden soll, ohne daß die Anzahl der Durchläufe bekannt 1st, so ist eine Indexvariable mitzuführen oder sonstwie zum Resultat eines logischen Ausdrucks zu kommen. Die folgende Konstruktion ermöglicht eine Endlos-Schleife:

{{{
BEGIN <Anweisungen> REPEAT
}}}

Die Wiederholungsanweisungen sind insoweit symmetrisch, daß eine Anweisung so­ lange (while) ausgeführt wird, wie ein Ausdruck wahr ist, oder eine Anweisung wiederholt wird, bis (until) ein Ausdruck wahr wird.

{{{
BEGIN <Anweisungen> flag UNTIL 
BEGIN <Anweisungen> flag WHILE <Anweisungen> REPEAT
}}}

Beide Möglichkeiten lassen sich in volksFORTH auch kombinieren, wobei auch mehrere (multiple) WHILE in einer Steueranweisung auftreten dürfen.

{{{
BEGIN <Anweisungen> flag WHILE <Anweisungen> flag UNTIL
}}}

Nun tritt in Anwendungen häufig der Fall auf, daß eine Steueranweisung verlassen werden soll, weil sich etwas ereignet hat.

Dann ist die vierte Situation, der Abbruch, gegeben, Die Programmiersprache "C" stellt dafür die Funktionen: ''break'', ''continue'', ''return'' und ''exit'' zur Verfügung; volksFORTH bietet hier ''exit'', ''leave'', ''endloop'', ''quit'', ''abort'', ''abort"'' und ''abort('' an. In FORTH wird EXIT dazu benutzt, um die Definition zu verlassen, in der es erscheint; LEAVE dagegen verläßt die kleinste umschließende DO...LOOP-Schleife.

!! Glossary

Ab der Version 3.81.8 verfügt volksFORTH über eine zusätzliche Steueranweisung für den Compiler, die bedingte Kompilierung in der Form:

{{{
have <word> not .IF <action1> .ELSE <action2> .THEN
}}}

DieseWorte werden außerhalb von Colon-Definitionen eingesetzt und ersetzen das ''\needs'' früherer Versionen.

[have]
[exit]
[?exit|question-exit]
[0=exit|zero-equals-exit]
[if]
[.IF]
[then]
[.THEN]
[else]
[.ELSE]
[do]
[?do|question-do]
[loop]
[+loop|plus-loop]
[I]
[J]
[leave]
[endloop]
[bounds]
[begin]
[repeat]
[until]
[while]
[execute]
[perform]
[case?|case-question]
[stop]