Boucle For
- Mise à jour2023-02-17
- Temps de lecture : 6 minute(s)
Boucle For
Exécute son sous-diagramme n fois.
Le terminal d'itération fournit le décompte d'itérations actuel de la boucle, qui varie de 0 à n-1.
Entrées/Sorties
Itération
Numéro de l'itération de boucle en cours. Le comptage des itérations commence toujours à zéro.
Si vous devez compter plus de 2 147 483 647 itérations, vous pouvez utiliser des registres à décalage avec une plus grande gamme d'entiers.

Nombre
Nombre de fois que le code de la boucle For doit être exécuté. Si vous câblez 0 ou un nombre négatif au terminal de décompte, la boucle ne s'exécute pas.
Ce terminal renvoie aussi le décompte de boucle.

Tunnel
Point à travers lequel les données entrent ou sortent d'une structure.
Les tunnels peuvent aussi avoir les types de fonctionnalités suivants :
Garder la dernière valeur—Transmet les données à travers le cadre de la boucle
Auto-indexer les valeurs—
Pour une seule itération de boucle, traite un élément d'un tableau si le tunnel est une entrée, ou ajoute un élément de données à un tableau d'accumulation si le tunnel est une sortie. Pour activer l'auto-indexation d'un tunnel, cliquez sur le tunnel avec le bouton droit et sélectionnez .
Concaténer les valeurs—Ajoute tous les éléments du tableau en entrée dans l'ordre, pour former un tableau en sortie de la même dimension que le tableau en entrée. Ce tunnel concatène les tableaux de la même façon que le nœud Construire un tableau. Vous pouvez configurer une sortie conditionnelle pour n'importe quel type de tunnel en sélectionnant le tunnel et en sélectionnant l'option Sortie conditionnelle sur l'onglet Élément. Si l'entrée conditionnelle d'un tunnel est Vrai, la boucle écrit la valeur correspondante dans le tunnel. Si l'entrée conditionnelle du tunnel est Faux, la boucle n'écrit pas la valeur correspondante dans le tunnel.

Registre à décalage
Membre d'une paire de terminaux qui transfère une valeur d'une itération d'une boucle à l'itération suivante. Après l'itération initiale de la boucle, le registre à décalage de gauche de la paire renvoie la valeur qu'il a reçue du registre à décalage de droite à l'itération précédente.
Reportez-vous à Accéder aux données de l'itération de boucle précédente pour en savoir plus sur le transfert de valeurs de l'itération précédente à l'itération en cours.

Créer un registre à décalage
Ajoute une paire de registres à décalage à la boucle pour transférer les données d'une itération de boucle à la suivante.
Examples
La figure suivante représente les valeurs en sortie pour un tunnel et des registres à décalage après zéro itération de la boucle.

| Sortie | Indicateur d'interface | Commentaires |
|---|---|---|
| A |
![]() |
Si une boucle For exécute zéro itération, ses tunnels de sortie transfèrent la valeur par défaut de leur type de données. |
| B |
![]() |
Les registres à décalage de sortie transfèrent la valeur câblée à l'entrée du registre à décalage de gauche correspondant. |
| C |
![]() |
Si le registre à décalage d'entrée n'a jamais contenu de valeur, le registre à décalage de sortie transfère la valeur par défaut de son type de données. |
- Boucle For simple
- Modes des tunnels de boucle
Programming Patterns
- Répéter des opérations un nombre défini de fois
- Répéter les opérations une fois pour chaque élément d'un tableau
Contrôle du cadencement des boucles
Reportez-vous à Cadencement de boucle pour en savoir plus sur la manière de contrôler la vitesse d'exécution d'une boucle.
Accès aux données de l'itération précédente d'une boucle
Reportez-vous à Accéder aux données de l'itération de boucle précédente pour en savoir plus sur le transfert de valeurs de l'itération précédente à l'itération en cours.
Comportement des tunnels et des registres à décalage après zéro itération
Si vous câblez directement des données à une boucle For qui exécute zéro itération, tous les terminaux de sortie câblés aux tunnels de sortie affichent la valeur par défaut du type de données. Tous les terminaux de sortie câblés à des registres à décalage de sortie affichent les données câblées au registre à décalage d'entrée correspondant. Si le registre à décalage d'entrée n'a jamais contenu de valeur, le registre à décalage de sortie affiche la valeur par défaut du type de données du registre d'entrée. Reportez-vous à la section Exemples pour en savoir plus.
Comportement du compte d'itération d'une boucle For avec un tunnel d'entrée d'auto-indexation
Si vous ne câblez pas de valeur au terminal de décompte alors que l'auto-indexation est activée, la boucle exécute automatiquement une itération par élément du tableau.
Si vous câblez une valeur au terminal de décompte quand l'auto-indexation est activée, la boucle For détermine le nombre d'itérations en utilisant la valeur la plus petite entre le terminal de décompte et la taille des tableaux en entrée. Par exemple, si un tableau auto-indexé à 10 éléments entre dans la boucle et que vous câblez la valeur 15 au terminal de décompte, la boucle s'exécute 10 fois.
Une boucle For peut traiter plusieurs tableaux élément par élément en utilisant plusieurs tunnels d'entrée d'auto-indexation. Dans ce cas, la boucle utilise la taille du plus petit tableau pour déterminer le nombre d'itérations. Par exemple, si vous avez deux tableaux auto-indexés avec respectivement 10 et 20 éléments, la boucle exécute 10 itérations en traitant tous les éléments du premier tableau mais en ne traitant que les 10 premiers éléments du deuxième.
Comportement de l'auto-indexation d'une boucle For pour des tableaux
Si vous définissez un tunnel à Auto-indexer les valeurs, la boucle indexe les éléments scalaires des tableaux 1D, les tableaux 1D des tableaux 2D, et ainsi de suite. L'opposé se produit sur les tunnels de sortie. Les éléments scalaires s'accumulent séquentiellement dans des tableaux 1D, les tableaux 1D s'accumulent dans des tableaux 2D, etc.
Pour les tableaux 2D, l'indexation a lieu aux limites des lignes et non pas des colonnes.


