Répète une série d'instructions plusieurs fois jusqu'à ce qu'un compteur de boucle atteigne une certaine valeur.
Syntaxe
For Compteur = Début To Fin[ÉtapeIncrément] Do
[Instructions]
End
La syntaxe de l'instruction For...End se compose des éléments suivants :
Élément |
Description |
|---|---|
Compteur |
Variable qui est utilisée comme compteur de boucle. Il n'est pas nécessaire de déclarer le compteur de boucle avec Dim. |
Début |
Valeur de départ du compteur. |
Fin |
Valeur de fin du compteur. |
Incrément |
L'incrément optionnel pour le compteur. La valeur par défaut est 1. |
Instructions |
Une ou plusieurs instructions entre For et End qui sont répétées jusqu'à ce que le compteur dépasse la valeur finale. |
Remarques
Une fois que toutes les instructions ont été exécutées lors du premier passage dans la boucle, le programme incrémente la valeur du Compteur d'un Incrément. Les instructions de la boucle sont alors soit exécutées à nouveau (sur la base du même test que celui effectué au début du premier cycle), soit le programme termine la boucle et poursuit l'exécution avec l'instruction qui suit l'instruction End.
Vous obtenez une boucle inverse lorsque vous utilisez un incrément négatif et que vous spécifiez une valeur finale inférieure à la valeur de départ.
Vous pouvez certes modifier la valeur de Compteur dans une boucle, mais cela complique la compréhension et le test du code.
Vous pouvez indiquer des grandeurs pour début, fin et incrément. Compteur reçoit l'unité de début. Fin et incrément, s'ils sont indiqués en tant que grandeurs, sont transformés dans cette unité avant le test ou l'addition. Sinon, ils sont traités comme étant présents dans l'unité de début.
Remarque : Si vous utilisez le compteur de boucle pour indexer les valeurs des ensembles de données, vous devez spécifier début, fin et, le cas échéant, incrément sous forme d'entiers (ajoutez le suffixe 'n').
Vous pouvez imbriquer des boucles For...End en positionnant une boucle For...End à l'intérieur d'une autre. Utilisez un nom de variable unique comme compteur pour chaque boucle. La construction suivante est correcte :
For I = 1n To 10n Do
For J = 1n To 10n Do
For K = 1n To 10n Do
. . .
End
End
End
Remarque : Dans la mesure du possible, vous devez éviter les boucles sur les valeurs individuelles d'un ensemble de données. FPScript vous permet de calculer des ensembles de données complets en une seule instruction. Les boucles peuvent généralement être remplacées par des fonctions d'isolation d'événements en combinaison avec l'opérateur Index. La boucle For Each Value...End est la plus rapide des boucles FPScript.
Disponible dans
FlexPro View, Basic, Professional, Developer Suite
Exemples
L'exemple suivant calcule les amplitudes des différentes ondes d'un signal sinusoïdal et les renvoie sous forme de série de données :
Arguments Données
Dim Idx, Result, n
Idx = LevelCrossings(Data, 0, 0, EVENT_INDEX + EVENT_POSITIVE)
n = NumberOfRows(Idx)
Result = 0. # 0 // Série de données vides
For i = 1n To n - 1n Do
Result := Maximum(Data[Idx[i - 1n], Idx[i]])
End
Result
L'exemple suivant montre une boucle qui utilise des unités :
For s = 0 km To 100 km Step 250 m Do
...
End
L'exemple suivant montre une boucle inverse :
For i = 100n To 0n Step -1n Do
...
End
Voir aussi
Instruction For Each Element...End
Instruction For Each Value...End
Instruction For Each Column...End