Instructions en boucle
Les informations sur cette page d’aide concernent à la fois Studio et Desktop Studio.
Les instructions de boucle permettent au script d'exécuter une tâche ou un ensemble de tâches de manière répétée jusqu'à ce que la condition de fin spécifiée soit remplie. Cette fonctionnalité est utile si vous voulez effectuer une série de tâches sur chaque membre d'un ensemble.
Les mots-clés des instructions en boucle sont les suivants :
- FOR : exécute les instructions intégrées tant qu'une expression Boolean
Un type de données qui a deux valeurs possibles : true et false. est évaluée comme vraie. - FOREACH : Exécute les instructions intégrées une fois pour chaque élément d'un tableau.
- REPEAT: exécute les instructions intégrées un nombre de fois spécifié.
Les instructions de boucle requièrent toujours des blocs de code conditionnels. Les blocs sont délimités par des accolades (
BREAK : termine un ensemble d'instructions en boucle.
Limites de temps des instructions de boucle
Chaque boucle FOR, FOREACH ou REPEAT au sein d'un SNIPPET est protégée par une limite de temps de 500 ms. Si une boucle dépasse cette limite, l'action SNIPPET prend la branche d'erreur avec l'erreur Too much time has elapsed. Cela évite l'utilisation excessive des ressources système pour les boucles incontrôlées. La limite de temps de 500 ms s'applique uniquement au travail côté script, y compris les affectations, les opérations arithmétiques, les conditions, l'accès aux tableaux, etc. Elle ne s'applique pas à l'exécution de bout en bout du code de l'Extrait. Par exemple, le temps d'attente pour un système externe tel qu'un appel API REST ou une base de données ne compte pas dans cette limite.
FOR Déclarations
Description : répète une instruction ou une série d'instructions un nombre précis de fois.
Syntaxe : FOR <var> = <start> TO <end> <{ ... [BREAK] }>
Détails : Une boucle FOR répète le code entre les accolades {...} une fois pour chaque valeur de nombre entier dans la plage de <start> à <end>. Les clauses <start> et <end> peuvent être des expressions ou des valeurs littérales. À chaque itération, la valeur actuelle de la plage est affectée à une variable <var> nommée dans la ligne d'en-tête de la boucle. C'est ce qu'on appelle la variable d’itérateur.
La clause facultative BREAK interrompt la boucle. Le script continue ensuite, en exécutant le code après l'accolade fermante ou en passant à l'Studio action
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. suivante.
La valeur initiale de <start> et <end> sera évaluée une fois, au début de la boucle. Vous pouvez modifier la valeur <end> dans les instructions de code entre les accolades {...}. Vous pouvez également modifier la valeur de <var> à l'intérieur de la boucle.
La valeur de <start> ne doit pas nécessairement être inférieure à celle de <end>. Si <end> est plus petit que <start>, la boucle se déplace vers le bas. La boucle effectue toujours au moins une itération. Ce comportement est différent de celui de certains autres langages de programmation. Les exemples suivants illustrent ce comportement.
Dans cet exemple, <end> est plus grand que <start>.Le résultat est ph="123456789".
FOR i=1 TO 9
{
ph = "{ph}{i}"
}
Dans cet exemple, <start> est plus grand que <end>.Le résultat est ph="987654321".
FOR i=9 TO 1
{
ph = "{ph}{i}"
}
Exemples
IF TEST = 1
{
ASSIGN Names = "Wes|Nate|Dan|Clay"
ASSIGN EyeColors = "Blue|Blue|Brown|Brown"
ASSIGN Signs = "Aquarius|Aries|Pisces|Leo"
ASSIGN Foods = "Spagetti|Pizza|Sushi|Deep Fried Twinkies"
}
DYNAMIC Persons
ASSIGN PeopleCount = Names.size
FOR i = 1 TO PeopleCount
{
ASSIGN Persons[i].Name = "{Names[i]}"
ASSIGN Persons[i].Eyecolor = "{EyeColors[i]}"
ASSIGN Persons[i].Sign = "{Signs[i]}"
ASSIGN Persons[i].Food = "{Foods[i]}"
}FOR i=1 TO 9
{
a = "{a}{i}"
}
//Result: a="123456789"
FOR i=9 TO 1
{
b = "{b}{i}"
}
//Result: b="987654321"
FOREACH instructions
Description : Répète une boucle une fois pour chaque élément du tableau de chaînes spécifié.
Format : FOREACH <var> IN <array> <{ ... [ BREAK ] }>
Détails : Une boucle FOREACH répète le code situé entre les accolades {...} une fois pour chaque élément d'un tableau de chaînes ou d'un objet de données dynamiques tableau. La valeur de chaque élément du tableau est affectée à une variable <var> nommée dans la ligne d'en-tête de la boucle.
La clause facultative BREAK interrompt la boucle. Le script continue alors en exécutant le code après l'accolade fermante, ou passe à l'Studio action
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. suivante.
L'exemple suivant montre une FOREACH boucle qui inclut une instruction IF statement.
IF TEST = 1
{
ASSIGN Names="Odin|Freya|Thor|Loki"
}
ASSIGN SubCounter=1
FOREACH Name IN Names
{
IF Name = "Odin" | Name = "Freya"
{
ASSIGN NewNames[SubCounter]= "{Name}"
ASSIGN SubCounter=SubCounter + 1
}
}
REPEAT Déclarations
Description : exécute les commandes désignées un nombre de fois spécifié.
Syntaxe : REPEAT <expression> <{ ... [ BREAK ]}>
Détails : Cette commande répète le code qui est contenu dans les accolades {...} un nombre de fois défini par <expression>. <expression> peut être n'importe quel entier positif littéral ou une expression évaluée à zéro ou à un entier positif.
Incluez le mot-clé en option
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique..
REPEAT 10
{
phone = "{phone}{random(10)}"
}
BREAK Déclarations
Description : Termine immédiatement une boucle.
Syntaxe : BREAK
Détails : Lorsque l'instruction BREAK est atteinte, la boucle en cours se termine immédiatement. Le script continue d'exécuter le code snippet situé sous la boucle jusqu'à ce qu'il soit terminé.
BREAK est facultatif. S’il n'est pas inclus, la boucle continue jusqu'à ce que la condition d'arrêt définie soit remplie.