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.

Le nombre maximal d'itérations est 2 147 483 647, soit 231-1.

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.

1378

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.

1378

Tunnel

Point à travers lequel les données entrent ou sortent d'une structure.

Les tunnels peuvent aussi avoir les types de fonctionnalités suivants :

  • 1378 Garder la dernière valeur—Transmet les données à travers le cadre de la boucle
  • 1378 Auto-indexer les valeursPour 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 Mode d'ajout » Auto-indexer les valeurs.
  • 1378 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.

    1378

    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.

    1378

    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.

    1378

    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.


    1378

    Sortie Indicateur d'interface Commentaires
    A
    1378

    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
    1378

    Les registres à décalage de sortie transfèrent la valeur câblée à l'entrée du registre à décalage de gauche correspondant.
    C
    1378

    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.
    Effectuez une recherche dans l'environnement de programmation pour accéder aux exemples installés suivants :
    • 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.