Freigeben über


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