FOR
operand1
|
[:]= |
|||||||||
|
||||||||||
STEP |
||||||||||
statement | ||||||||||
END-FOR
|
(structured mode only) | |||||||||
[LOOP ]
|
(reporting mode only) |
Anmerkung:
Aus Kompatibilitätsgründen sind die Schlüsselwörter :=
,
EQ
, FROM
, TO
, THRU
und
STEP
optional, wenn der entsprechende nachfolgende Operand
(operand2, operand3 oder
operand4) anstelle eines arithmetischen Ausdrucks
verwendet wird.
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: REPEAT
| ESCAPE
Gehört zur Funktionsgruppe: Schleifenverarbeitung
Mit dem Statement FOR
wird eine Verarbeitungsschleife
ausgelöst und gleichzeitig die Anzahl der Schleifendurchläufe gesteuert.
Bevor die FOR
-Schleife zum erstenmal durchlaufen wird,
wird geprüft, ob die Werte der Operanden konsistent sind (d.h. ob es möglich
ist, dass durch wiederholtes Addieren von operand4
zu operand2 der Wert von
operand3 erreicht werden kann); ist dies nicht der
Fall, wird die FOR
-Schleife nicht durchlaufen (ohne dass eine
Fehlermeldung ausgegeben wird; Ausnahme: wenn der STEP
-Wert Null
ist, wird eine Meldung ausgegeben).
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | N | P | I | F | ja | ja | |||||||||||||
operand2 | C | S | N | E | N | P | I | F | ja | nein | ||||||||||
operand3 | C | S | N | E | N | P | I | F | ja | nein | ||||||||||
operand4 | C | S | N | E | N | P | I | F | ja | nein |
Syntax-Element-Beschreibung:
operand1 |
Schleifenkontrollvariable
(operand1) und Ausgangswert
(operand2):
operand1 kann ein Datenbankfeld oder
eine Benutzervariable sein und steuert die Anzahl der Schleifendurchläufe. Der
nach dem Schlüsselwort Die Kontrollvariable kann während der Ausführung der Verarbeitungsschleife referenziert werden, um den aktuellen Wert der Kontrollvariablen zu erhalten. |
---|---|
operand2 | |
operand3 |
TO-Wert:
Die Verarbeitungsschleife wird beendet, sobald
operand1 einen Wert enthält, der größer ist als der
Wert von operand3 (oder kleiner, falls der
|
operand4 |
STEP-Wert:
Der Wert von operand4 kann positiv oder
negativ sein. Ist kein Wert angegeben, wird ein Wert von Je nach dem Vorzeichen des operand4 darf nicht Null (0) sein. |
(arithmetic-expression) |
Anstelle von operand2,
operand3 oder operand4
kann ein beliebiger arithmetischer Ausdruck angegeben werden. Weitere
Informationen siehe arithmetic-expression
in der Beschreibung des Anmerkung: |
END-FOR |
Das für Natural reservierte Wort |
** Example 'FOREX1S': FOR (structured mode) ************************************************************************ DEFINE DATA LOCAL 1 #INDEX (I1) 1 #ROOT (N2.7) END-DEFINE * FOR #INDEX 1 TO 5 COMPUTE #ROOT = SQRT (#INDEX) WRITE NOTITLE '=' #INDEX 3X '=' #ROOT END-FOR * SKIP 1 FOR #INDEX 1 TO 5 STEP 2 COMPUTE #ROOT = SQRT (#INDEX) WRITE '=' #INDEX 3X '=' #ROOT END-FOR * END
Ausgabe des Programms FOREX1S
:
#INDEX: 1 #ROOT: 1.0000000 #INDEX: 2 #ROOT: 1.4142135 #INDEX: 3 #ROOT: 1.7320508 #INDEX: 4 #ROOT: 2.0000000 #INDEX: 5 #ROOT: 2.2360679 #INDEX: 1 #ROOT: 1.0000000 #INDEX: 3 #ROOT: 1.7320508 #INDEX: 5 #ROOT: 2.2360679
Äquivalentes Reporting-Mode-Beispiel: FOREX1R
.