Saltar navegación

Documentación de FlexPro 2025

Para...Fin

Repite una serie de instrucciones varias veces hasta que un contador de bucles alcanza un valor determinado.

Sintaxis

For Contador = Inicio To Fin [Step Incremento] Do

   [Instrucciones]

End

La sintaxis de la instrucción For...End consta de las siguientes partes:

Parte

Descripción

Contador

Variable que se utiliza como contador de bucles. No es necesario declarar el contador de bucles con Dim.

Inicio

Valor inicial del Contador.

Fin

Valor final del Contador.

Incremento

El incremento opcional para el contador. El valor predeterminado es 1.

Instrucciones

Una o más instrucciones entre For y End que se repiten hasta que el Contador supera el valor final.

Notas

Una vez ejecutadas todas las instrucciones de la primera pasada del bucle, el programa incrementa en un Incremento el valor del Contador. A continuación, las instrucciones del bucle se ejecutan de nuevo (basándose en la misma prueba que se realizó al principio de la primera ejecución), o bien el programa finaliza el bucle y continúa la ejecución con la instrucción que sigue a la instrucción End.

Puede crear un bucle que se ejecute hacia atrás si utiliza un incremento negativo y especifica un valor final menor que el valor inicial.

Puede cambiar el valor de Contador dentro de un bucle, pero esto hace más difícil entender y probar el código.

Puede especificar tamaños para el Inicio, el Fin y el Incremento. El Contador recibe la unidad desde el Inicio. El Fin y el Incremento se transforman en esta unidad antes de la prueba o adición, si se especifican como valores. En caso contrario, se considera que están presentes en la unidad desde el Inicio.

Nota   Si utiliza el contador de bucles para indexar valores de conjuntos de datos, debe especificar el Inicio, el Fin y, si es necesario, el incremento como números enteros (añadiendo el sufijo "n").

Puede anidar bucles For...End posicionando un bucle For...End dentro de otro. Utilice un nombre de variable único como contador para cada bucle. La siguiente construcción es correcta:

 

For I = 1n To 10n Do

    For J = 1n To 10n Do

        For K = 1n To 10n Do

        . . .

        End

    End

End

Nota   En la medida de lo posible, evite los bucles sobre valores individuales de un conjunto de datos. FPScript le ofrece la posibilidad de calcular conjuntos de datos completos en una sola instrucción. Por lo general, los bucles pueden sustituirse por funciones de aislamiento de eventos junto con el operador de índice. El bucle For Each Value...End es el bucle FPScript más rápido.

Disponibilidad

FlexPro View, Basic, Professional, Developer Suite

Ejemplos

El siguiente ejemplo calcula la amplitud de ondas individuales en una señal senoidal y la transfiere como una serie de datos:

Arguments Data

Dim Idx, Result, n

Idx = LevelCrossings(Data, 0, 0, EVENT_INDEX + EVENT_POSITIVE)

n = NumberOfRows(Idx)

Result = 0. # 0    // Serie de datos vacía

For i = 1n To n - 1n Do

    Result := Maximum(Data[Idx[i - 1n], Idx[i]])

End

Result

 

El siguiente ejemplo muestra un bucle que utiliza unidades:

For s = 0 km To 100 km Step 250 m Do

    ...

End

 

El siguiente ejemplo muestra un bucle que se ejecuta hacia atrás:

For i = 100n To 0n Step -1n Do

    ...

End

Véase también

Instrucción For Each Element...End

Instrucción For Each Value...End

Instrucción For Each Column...End

Instrucción For Each Row...End

Instrucción While...End

Instrucción Do...While