Instructions de boucle
Les informations contenues dans cette page d’aide s’appliquent à 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. Cela est utile si vous avez une série de tâches que vous souhaitez exécuter sur chaque membre d’un ensemble.
Les mots-clés des instructions de boucle sont les suivants :
- FOR : exécute les instructions intégrées tant qu’une expression Booléenne
Un type de données qui a deux valeurs possibles : true et false. est évaluée à vrai. - 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 nécessitent toujours des blocs de code conditionnels. Les blocs sont délimités par des accolades (
BREAK : met fin à un ensemble d’instructions de boucle.
Limites de temps des instructions de boucle
Chaque boucle FOR, FOREACH ou REPEAT à l'intérieur d'un Extrait de code SNIPPET est protégée par une limite de temps de 500 ms. Si une boucle dépasse cette limite, l'action SNIPPET emprunte la branche d'erreur avec l'erreur Too much time has elapsed. Cela empêche l'utilisation excessive des ressources système par des boucles incontrôlées. La limite de temps de 500 ms s'applique uniquement au travail côté script, y compris les affectations, les calculs 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 passé à attendre un système externe, comme un appel API REST ou un appel à une base de données, ne compte pas dans cette limite.
Déclarations FOR
Description : Répète une instruction ou une série d’instructions un nombre spécifique 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 entière 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 itérateur.
La clause facultative BREAK interrompt la boucle. Le script continue alors, exécutant le code après l’accolade fermante ou passant à la prochaine Studio action
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique..
La valeur initiale de <start> et <end> est évaluée une seule fois, au début de la boucle. Vous pouvez modifier la valeur de <end> dans les instructions de code entre les accolades {...}. Vous pouvez également modifier la valeur de <var> depuis l’intérieur de la boucle.
La valeur de <start> n’a pas besoin d’être inférieure à <end>. Si <end> est inférieur à <start>, la boucle progresse vers le bas. Au moins une itération de la boucle se produira toujours. Ce comportement diffère de celui de certains autres langages de programmation. Les exemples suivants illustrent ce comportement.
Dans cet exemple, <end> est supérieur à <start>. Le résultat est ph="123456789".
FOR i=1 TO 9
{
ph = "{ph}{i}"
}
Dans cet exemple, <start> est supérieur à <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"
Déclarations FOREACH
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 entre les accolades {...} une fois pour chaque élément d'un tableau de chaînes ou d'un objet de données dynamiques array. La valeur de chaque élément du tableau est assigné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 en passant à l'action
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. Studio suivante.
L'exemple suivant illustre une boucle FOREACH qui inclut une instruction IF.
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
}
}
Déclarations REPEAT
Description : Exécute les commandes désignées un nombre spécifié de fois.
Syntaxe : REPEAT <expression> <{ ... [ BREAK ]}>
Détails : Cette commande répète le code 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 qui s'évalue à zéro ou à un entier positif.
Incluez le mot-clé facultatif
Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. Studio.
REPEAT 10
{
phone = "{phone}{random(10)}"
}
Déclarations BREAK
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 l’extrait de code situé sous la boucle jusqu’à ce qu’il soit terminé.
BREAK est facultatif. S’il n’est pas inclus, la boucle se poursuit jusqu’à ce que la Condition d’arrêt définie soit respectée.