FOR ... ENDFOR-Befehl
Führt eine Reihe von Befehlen so oft aus wie angegeben.
FOR Var = nInitialValue TO nFinalValue [STEP nIncrement]
Commands
[EXIT]
[LOOP]
ENDFOR | NEXT
Parameter
- Var
Gibt eine Variable oder ein Arrayelement an, die bzw. das als Zähler fungiert. Die Variable bzw. das Arrayelement muss nicht vorhanden sein, bevor FOR ... ENDFOR ausgeführt wird. - nInitialValue TO nFinalValue
nInitialValue gibt den anfänglichen Wert des Zählers an und nFinalValue den abschließenden Wert. - STEP nIncrement
nIncrement ist der Wert, um den der Zähler erhöht bzw. verringert wird. Wenn nIncrement negativ ist, wird der Zähler verringert. Ist keine STEP-Klausel angegeben, wird der Zähler um den Wert 1 erhöht. - Commands
Gibt die Visual FoxPro-Befehle an, die ausgeführt werden sollen. Mit Commands kann eine beliebige Anzahl von Befehlen angegeben werden. - EXIT
Übergibt die Kontrolle aus der FOR ... ENDFOR-Schleife heraus an den Befehl unmittelbar nach ENDFOR. Sie können EXIT an einer beliebigen Stelle zwischen FOR und ENDFOR einfügen. - LOOP
Gibt die Kontrolle direkt an die FOR-Klausel zurück, ohne dass die Anweisungen zwischen LOOP und ENDFOR ausgeführt werden. Der Zähler wird erhöht oder verringert, als ob ENDFOR erreicht worden wäre. LOOP kann an einer beliebigen Stelle zwischen FOR und ENDFOR eingefügt werden.
Hinweise
Mit Hilfe einer Variablen oder eines Arrayelements als Zähler wird angegeben, wie oft die Visual FoxPro-Befehle in der FOR ... ENDFOR-Schleife ausgeführt werden.
Die Visual FoxPro-Befehle nach FOR werden ausgeführt, bis ENDFOR oder NEXT erreicht wird. Dann wird der Zähler Var um den Wert von nIncrement erhöht. Wenn Sie die STEP-Klausel nicht angeben, wird der Zähler um 1 erhöht und danach mit nFinalValue verglichen. Ist der Zähler kleiner als oder gleich nFinalValue, werden die Befehle nach der FOR-Klausel erneut ausgeführt. Ist der Zähler größer als nFinalValue, wird die FOR ... ENDFOR-Schleife verlassen und die Programmausführung mit dem Befehl fortgesetzt, der unmittelbar auf ENDFOR oder NEXT folgt.
Anmerkung Der Wert von nInitialValue, nFinalValue und nIncrement wird nur anfangs gelesen. Ändert sich dagegen der Wert des Zählers Var innerhalb der Schleife, wirkt sich dies auf die Anzahl der Ausführungen der Schleife aus.
Ist der Wert von nIncrement negativ und der Wert von nInitialValue größer als der Wert von nFinalValue, wird der Zähler bei jedem Schleifendurchlauf verringert.
Beispiel
Im ersten Beispiel werden die Zahlen 1 bis 10 angezeigt.
Im zweiten Beispiel werden für den Anfangswert, den Endwert und das STEP-Intervall Speichervariablen verwendet, um in der Tabelle customer
alle geradzahligen Datensätze von 2 bis 10 anzuzeigen.
* Example 1
CLEAR
FOR gnCount = 1 TO 10
? gnCount
ENDFOR
* Example 2
SET TALK OFF
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
STORE 2 TO gnI && Initial value
STORE 10 TO gnJ && Final value
STORE 2 TO K && Step value
FOR gnCount = gnI TO gnJ STEP K
GOTO gnCount && Move record pointer
DISPLAY company && Display company name
ENDFOR
Siehe auch
DO CASE ... ENDCASE | DO WHILE ... ENDDO | FOR EACH … ENDFOR | IF ... ENDIF | SCAN ... ENDSCAN | EXIT | LOOP