Language: C#, C/SQL, Cobol, Java, RPG, Visual FoxPro, Visual Basic
Se implemento esta estructura de programación que permite recorrer con menos código una colección o un vector de una o más dimensiones.
For &Var in &Array()
...
Endfor
&Var tiene que tener el mismo tipo de datos que &Array o compatible.
&Array() debe ser un vector de una o más dimensiones o una colección de estructurados
El código anterior, almacena en la variable &Var los valores de cada posición del vector.
Para el caso de vectores de una única dimensión, se expande a:
&x = 1
Do while &x <= rows(&Array())
&Var = &Array( &x)
...
&x = &x + 1
Enddo
En el caso de dos dimensiones el comando es análogo
for &var in &arr2()
…
endfor
Con &arr2 un vector de dos dimensiones y el código expandido sería:
&x
= 1
Do while &x <= rows(
&Array())
&y = 1
Do while &y <= cols(
&Array())
&Var = &Array( &x,
&y)
...
&y = &y + 1
Enddo
&x = &x + 1
Enddo
- No es posible modificar los valores del vector en la recorrida. Esto significa que cambios en el valor de &Var, en el alcance de de la estructura, no afectan al correspondiente valor del &Array(X) o viceversa.
- No es posible obtener la posición del vector durante la recorrida, para esto es necesario definir un variable que actúe como contador.
- Es posible, por ejemplo imprimir los valores de un array o anidar estas estructuras para recorrer (imprimir) varios vectores. Esto considera el caso en que dentro de la estructura se invoca una Subrutina que también tiene un For In &Array.
- Es posible incluir comandos de “corte” de la recorrida, al igual que en for each o do while, como exit o return.