up previous next
for

loop command

Syntax
For I := N_1 To N_2 Do C EndFor
For I := N_1 To N_2 Step D Do C EndFor

where I is a dummy variable, N_1, N_2, and D are integer expressions,
and C is a sequence of commands.

Description
In the first form, the variable I is assigned the values N_1, N_1+1, ...,N_2 in succession. After each assignment, he command sequence C is executed. The second form is the same, except that I is assigned the values N_1, N_1+D, N_1+2D , and so on, until the limit N_2 is passed. If N_2 < N_1 , then the command sequence C is not executed.

NOTE: Large values for N_1, N_2 , or D are not permitted; typically they should lie in the range about -10^9 to +10^9.

Example
/**/  For N := 1 To 5 Do Print 2^N, " "; EndFor;
2 4 8 16 32

/**/  for n := 1 to 20 step 3 do print n, " "; endfor;
1 4 7 10 13 16 19

/**/  For N := 10 To 1 Step -2 Do Print N, " "; EndFor;
10 8 6 4 2

/**/  For N := 5 To 3 Do Print N, " "; endfor;  -- no output
Loops can be nested.

Example
/**/   Define MySort(ref L)
/**/     For I := 1 To len(L)-1 Do
/**/       M := I;
/**/       For J := I+1 To len(L) Do
/**/         If L[J] < L[M] Then M := J; EndIf;
/**/       EndFor;
/**/       If M <> I Then
/**/         C := L[M];
/**/         L[M] := L[I];
/**/         L[I] := C;
/**/       EndIf;
/**/     EndFor;
/**/   EndDefine;

/**/  M := [5,3,1,4,2];
/**/  MySort(ref M);
/**/  M;
[1, 2, 3, 4, 5]
(Note that ref L is used so that the function can change the value of the variable referenced by L. See ref .)
See Also