| xHarbour Reference Documentation > Statement Reference |
![]() |
![]() |
![]() |
Executes a block of statements a specific number of times.
FOR <nCounter> := <nStart> TO <nEnd> [STEP <nIncrement>] <Statements> [EXIT] <Statements> [LOOP] NEXT
The FOR...NEXT statements form a control structure that executes a block of statements for a specific number of times. This is controlled by the <nCounter> counter variable which gets assigned the value <nStart> when the loop is entered for the first time. The loop iterates the statements between FOR and NEXT and adds the value <nIncrement> to <nCounter> each time the NEXT statement is reached or a LOOP statement is executed.
The value <nEnd> identifies the largest value for <nCounter> (<nIncrement> is positive) or its smallest value (<nIncrement> is negative) after which the FOR...NEXT loop terminates.
Note: The expressions in the FOR statement are evaluated each time a new iteration begins. As a consequence, new values can be assigned to <nCounter> or <nEnd> while the loop executes.
| See also: | AEval(), FOR EACH, DO CASE, DO WHILE, IF, SWITCH, WITH OBJECT |
| Category: | Control structures , Statements |
// This example shows a typical scenario for a FOR..NEXT loop
// where an array is filled with data, and stored data is output.
PROCEDURE Main
LOCAL aFields, i
USE Customer
aFields := Array( FCount() )
// fill array in regular order
FOR i:=1 TO FCount()
aArray[i] := FieldName(i)
NEXT
USE
// output data in reverse order
FOR i:=Len( aArray ) TO 1 STEP -1
? aArray[i]
NEXT
RETURN
http://www.xHarbour.com