Déclaration For…End (FPScript)
Répète une série d'instructions plusieurs fois jusqu'à ce qu'un compteur de boucle atteigne une certaine valeur.
Syntaxe
Pour Compteur = Début à Fin [Étape Incrémenter]Do
[Statements]
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émenter |
L'incrément optionnel pour le compteur. La valeur par défaut est 1. |
Déclarations |
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
Après que toutes les instructions aient été exécutées dans le premier cycle de la boucle, le programme incrémente la valeur de Counter par Increment. 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 modifier la valeur de Counter à l'intérieur d'une boucle, mais cela rend la compréhension et les tests du code plus difficiles.
Pour le début, la fin et l'incrément, vous pouvez spécifier les quantités. Lecompteur obtient l'unité de Start. Lafin et l'incrément sont transformés en cette unité avant le test ou l'addition, tant que les quantités sont spécifiées. Sinon, ils sont traités comme étant présents dans l'unité de départ.
Remarque : Si vous utilisez le compteur de boucle pour indexer les valeurs des ensembles de données, vous devez spécifier le début, la fin et, le cas échéant, l'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 :
Pour I = 1n à 10n Do
Pour J = 1n à 10n Do
Pour K = 1n à 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 pour l'isolation d'événements en conjonction avec l'opérateur Opérateur d'indexation. For Each Value...End est la boucle FPScript la plus rapide.
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, Resultat, n
Idx = LevelCrossings(Data, 0, 0, EVENT_INDEX + EVENT_POSITIVE)
n = Nombre de lignes (Idx)
Result = 0. # 0 // Série de données vides
Pour i = 1n à n - 1n Do
Résultat := Maximum(Données[Idx, Idx])
End
Résultat
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
For Each Element...End Statement
For Each Value...End Statement