Imaginez que vous ayez un tableau contenant les noms de tous les salariés d'une entreprise.
Puisqu'il y a de nombreux salariés, nous devrons utiliser x déclarations pour enregistrer tous leurs noms.
Plus il y a de salariés, plus nous aurons besoin de déclarations. Imaginez essayer d'enregistrer les noms de chaque salarié dans un tableur pour un service RH. Il pourrait y avoir des centaines de salariés. Cela peut devenir fastidieux, il doit donc y avoir une meilleure façon de le faire.
Une boucle est un morceau de code qui exécute un ensemble d'instructions plusieurs fois. Chaque exécution est appelée une itération. Il existe deux types courants de boucles dans Apps Script.
La boucle For : elle est utilisée pour exécuter un ensemble d'instructions un certain nombre de fois. Une boucle For est généralement utilisée lorsque vous connaissez le nombre d'itérations à l'avance.
La boucle While : elle est utilisée pour continuer à exécuter un ensemble d'instructions tant qu'une condition est remplie. Une boucle While est utilisée dans les situations où vous ne connaissez pas le nombre d'itérations à l'avance.
Une boucle For est généralement utilisée pour implémenter un certain type de compteur dans votre programme. Dans un exemple où nous aurions 22 salariés, nous avons utilisé 22 instructions pour imprimer les noms des salariés de l'entreprise.
Le seul changement dans chaque instruction était l'indice du tableau (0, 1, 2 ... 21). Au lieu d'utiliser 22 instructions distinctes, vous auriez pu n'utiliser que cette seule instruction :
Logger.log(noms[compteur]);
Ici, compteur est une variable dont la valeur doit commencer à 0 (premier salarié) et doit augmenter de 1 à chaque itération jusqu'à atteindre 21 (dernier salarié).
Voici comment implémenter cela en utilisant une boucle For.
for (var compteur = 0; compteur <= 21; compteur = compteur + 1) {
Logger.log(noms[compteur]);
}
Voyons comment cela fonctionne. Une boucle For comporte quatre étapes.
Initialiser la variable du compteur.
Vérifier si la condition spécifiée est remplie.
Si la condition est remplie, exécuter les instructions à l'intérieur de la boucle (entre les crochets).
Incrémenter le compteur et passer à l'itération suivante.
Imaginez que vous écrivez un programme pour deviner un nombre secret. Disons que le nombre secret est 55. À chaque itération, votre programme génère un nombre entre 0 et 100. Si ce nombre est égal à 55, le programme se termine. Sinon, il passe à l'itération suivante et devine le nombre suivant.
Il est difficile d'utiliser une boucle For ici, car vous ne savez pas combien de suppositions seront nécessaires avant que votre programme ne devine correctement 55. C'est là qu'une boucle While devient pratique.
Le code ci-dessous vous montre comment utiliser une boucle While. Le code continue à deviner un nombre entre 0 et 100 jusqu'à ce qu'il devine correctement 55. Il utilise également la variable nombreEssai pour savoir combien de tentatives ont été nécessaires pour deviner correctement le nombre secret.
L'expression Math.floor(100 * Math.random()) génère un nombre aléatoire compris entre 0 et 100. La fonction Math.random() génère un nombre aléatoire compris entre 0 et 1. Disons qu'elle génère 0,16251661. En le multipliant par 100, on obtient un nombre compris entre 0 et 100. Le nombre 0,16251661 devient 16,251661 lorsqu'il est multiplié par 100. Enfin, la fonction Math.floor arrondit le nombre au nombre entier le plus proche. Ainsi, Math.floor(16,251661) donne 16,0.
function deviner() {
var nombreEssai = 1;
var nombreADeviner = Math.floor(100 * Math.random());
while (nombreADeviner != 55) {
nombreEssai = nombreEssai + 1;
nombreADeviner = Math.floor(100 * Math.random());
}
Logger.log(nombreEssai);
}
La structure d'une boucle While est plus simple que celle d'une boucle For. Il n'y a que deux étapes.
Vérifiez si une condition est remplie.
Si elle est remplie, exécutez les instructions à l'intérieur de la boucle While. Puis répétez l'étape 1.
Dans l'exemple ci-dessus, il a fallu 56 essais pour que le programme devine correctement 55. Si vous exécutez à nouveau le programme, le nombre de suppositions sera probablement différent. Il est impossible de connaître le nombre de suppositions à l'avance. Ce que nous savons à l'avance, c'est quand nous devons nous arrêter. Nous savons que nous devons nous arrêter lorsque nous avons deviné correctement le nombre secret. C'est la différence entre une boucle For et une boucle While. Utilisez une boucle For si vous connaissez le nombre d'itérations à l'avance. Utilisez une boucle While si vous savez quand vous arrêter en fonction d'une condition, mais que vous n'avez aucune idée du nombre d'itérations nécessaires pour que cette condition soit remplie.
Les instructions break et continue peuvent être utilisées pour sortir d'une boucle ou passer à l'itération suivante. Le code contenu dans la boucle après l'une de ces instructions ne sera PAS exécuté.
L'instruction break est utilisée pour sortir de la boucle. L'instruction continue est utilisée pour passer à l'itération suivante.
Voici un exemple d'utilisation de l'instruction break. Disons que nous ne voulons essayer de deviner le bon numéro qu'un certain nombre de fois. Le code ci-dessous utilise l'instruction break pour sortir de la boucle après avoir deviné le nombre incorrect 1000 fois.
Dans la version précédente du code, la boucle While se serait terminée UNIQUEMENT après avoir deviné 55 fois correctement. Dans cette nouvelle version, la boucle While peut se terminer dans deux circonstances. Soit le nombre correct est deviné, soit il n'y a plus de chiffres à deviner. Par conséquent, nous devons utiliser une instruction IF après la boucle pour enregistrer le message correct. Si la boucle While se termine sans avoir deviné le 55, cela signifie qu'il n'y avait plus de chiffres à deviner. Dans le cas contraire, elle a deviné le nombre correctement.