FOR
operand1
|
[:]= | operand2 | |||||
EQ |
|||||||
FROM |
|||||||
TO
|
operand3
[[STEP ] operand4]
|
||||||
THRU |
|||||||
statement | |||||||
END-FOR
|
(structured mode only) | ||||||
[LOOP ]
|
(reporting mode only) |
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).
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 | N | P | I | F | ja | nein | ||||||||||
operand3 | C | S | N | N | P | I | F | ja | nein | ||||||||||
operand4 | C | S | N | N | P | I | F | ja | nein |
Syntax-Element-Beschreibung:
** 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
.