Boucles et If

Dans la troisième partie du cours, nous examinerons les éléments de base pour automatiser davantage votre code : les boucles et les conditions if.

Parcourez la page dans l’ordre si vous apprenez, ou utilisez les liens ci-dessous pour accéder à des éléments spécifiques :

Introduction à l’automatisation des actions et des décisions

Maintenant que nous avons examiné l’utilisation de feuilles de calcul et de documents, il est temps d’apprendre à automatiser les actions dans Apps Script afin de pouvoir effectuer la même action pour plusieurs éléments. Par exemple, vous souhaiterez peut-être créer des documents non pas pour une seule ligne d’une feuille de calcul, mais pour toutes les lignes d’une feuille de calcul ou pour toutes les lignes que vous avez marquées comme nécessitant un document.

Les ordinateurs sont très doués pour effectuer des actions répétitives car ils ne s’ennuient pas, contrairement aux humains, donc créer du code Apps Script qui peut faire la même chose plusieurs fois peut être beaucoup plus efficace que d’effectuer la tâche manuellement. Vous pouvez également réduire les erreurs des utilisateurs une fois que vous avez le bon code, car il n’y a aucune chance que quelqu’un fasse accidentellement une mauvaise tâche l’une des nombreuses fois où il doit le faire.

Pour répéter une section de code pour différentes valeurs, par exemple différentes lignes dans une feuille de calcul, nous pouvons utiliser une boucle . Lorsque nous travaillons avec du code répété, nous pouvons également souhaiter vérifier des valeurs ou prendre des décisions basées sur des valeurs, de sorte que le code dans la boucle ne s’exécute que pour les valeurs souhaitées. Nous pouvons également utiliser une condition if pour ajouter une prise de décision vrai/faux à notre code.

Dans cette section, nous examinerons les boucles et les if et comment les combiner pour créer un code puissant capable d’effectuer des tâches répétitives très rapidement.

Créer une boucle

Jetons un coup d’œil aux boucles. Une boucle est une fonctionnalité d’Apps Script (et de JavaScript) qui peut exécuter la même section de code plusieurs fois et vous permettre d’envoyer des valeurs différentes au code à chaque fois. Il s’agit d’un morceau de code au sein de votre fonction qui se répète pendant un nombre défini d’exécutions ou lorsqu’une certaine condition est vraie.

Dans ce cours, nous allons examiner les boucles, ce qui signifie qu’elles s’exécutent un certain nombre de fois. En règle générale, le nombre d’exécutions de la boucle provient d’autre chose dans votre code, par exemple le nombre d’éléments dans un tableau ou de lignes dans une feuille de calcul.

Il existe d’autres types de boucles en JavaScript que vous pouvez utiliser dans Apps Script. Vous souhaiterez peut-être les explorer si vous approfondissez votre utilisation d’Apps Script après ce cours.

Créer une boucle for

Pour créer une boucle for, nous utilisons le mot-clé for (ce qui signifie que vous ne pouvez pas utiliser le mot « for » pour les noms de variables car il a déjà une tâche dans Apps Script). Nous devons ensuite donner quelques informations avec notre boucle afin que l’ordinateur sache combien de fois parcourir le code dans la boucle. Pour ce faire, nous créons une variable de comptage et lui donnons une valeur de départ initiale, puis définissons comment le comptage se produit et quand le comptage (et la boucle) doit s’arrêter. Jetons un coup d’œil à un exemple :

for (var i = 0; i < 5; i++) {
    // code that runs inside the loop
}

Dans l’exemple ci-dessus, nous avons trois informations entre parenthèses, séparées par des points-virgules.

  1. La première partie var i = 0 définit une nouvelle variable, i , et lui donne une valeur initiale de 0. Votre variable de comptage n’a pas besoin de commencer à 0 – il pourrait être plus utile de la démarrer à partir d’un autre nombre. Par exemple, si vous travaillez sur des valeurs dans un tableau 2D et que le premier sous-tableau est la ligne d’en-tête de la feuille de calcul, vous souhaiterez peut-être commencer à partir du 2ème tableau, qui serait au numéro d’index 1. Par conséquent, vous pouvez définir votre valeur de i doit être 1. Il n’est pas non plus nécessaire de l’appeler i , bien que cela soit généralement utilisé – vous pouvez lui donner le nom de variable de votre choix.
  2. La deuxième partie i < 5 est la condition qui est testée à chaque exécution de la boucle pour vérifier si la boucle doit s’exécuter à nouveau. Dans cet exemple, il vérifie si la variable de comptage i est inférieure à 5. Si cette condition est vraie, la boucle s’exécutera à nouveau, et si elle est fausse, la boucle ne s’exécutera pas et l’ordinateur passera au bit de code suivant. après la boucle. En règle générale, vous souhaitez que cette condition teste si i est supérieur à la taille de votre ensemble de données, que vous pouvez saisir manuellement, mais la meilleure façon de le faire est d’utiliser .length sur n’importe quel tableau pour obtenir sa longueur, qui est le nombre de éléments à l’intérieur.
  3. La troisième partie i++ indique comment la valeur de i doit changer à chaque exécution de la boucle. i++ est un raccourci pour i = i + 1, ce qui signifie qu’à chaque exécution, ajoutez 1 à la valeur de 1 et faites de cette réponse la nouvelle valeur de i. Fondamentalement, incrémentez i de 1 à chaque fois que la boucle s’exécute.

Le code à l’intérieur des accolades s’exécute à chaque exécution de la boucle. Soyez averti qu’il est possible de créer des boucles infinies si vous vous trompez, bien qu’Apps Script expire s’il s’exécute trop longtemps, car la durée d’exécution est limitée par Google , de sorte qu’il ne s’exécutera pas éternellement !

Voici un exemple de boucle utilisant un tableau 2D, appelé mesDonnees , qui est une plage d’une feuille de calcul contenant une ligne d’en-tête, et comment nous pouvons faire quelque chose avec chaque ligne tour à tour :

var numberOfRows = mesDonnees.length;
for (var i = 1; i < numberOfRows; i++) {
    var singleValue = mesDonnees[i][0];
    Logger.log(singleValue);
}

Dans cet exemple, nous obtenons la longueur du tableau numberOfRows, puis l’utilisons lors de la création de la boucle pour savoir quand la boucle doit se terminer. Nous définissons la valeur de départ de i sur 1 car nous ne voulons pas que le premier tableau soit à la position 0, car il s’agit de la ligne d’en-tête des données. À l’intérieur de la boucle, nous obtenons une valeur unique de la ligne de données en utilisant la variable de comptage i pour représenter la position dans laquelle nous nous trouvons dans le tableau principal, puis nous enregistrons l’élément de données que nous avons stocké dans la variable.

Les exercices de livecoding sur cette page vous aideront à comprendre le fonctionnement d’une boucle for, mais une fois que vous l’aurez utilisée une fois, vous pourrez simplement modifier votre boucle for pour différents ensembles de données selon vos besoins.

w3schools : boucle For JavaScript

Création de conditions if

Parfois, vous souhaitez qu’une section de code ne s’exécute que si une décision est prise : si une condition est vraie ou fausse. C’est ici que nous pouvons utiliser une condition if pour évaluer une condition et avoir du code qui s’exécutera si cette condition est vraie. Vous pouvez également avoir du code qui s’exécutera si la condition est fausse, en utilisant else après votre if.

La syntaxe générale d’un if utilise le mot-clé if et comporte ensuite une condition à tester entre parenthèses, suivie d’accolades pour entourer le code qui s’exécutera si la condition est vraie.

if (condition à tester) {
une ou plusieurs lignes de code
}

Pour créer des conditions, vous devez rédiger une déclaration qui peut être vraie ou fausse. Pour ce faire, vous utilisez des opérateurs tels que == pour est égal à, < pour inférieur à, > pour supérieur à et != pour n’est pas égal à.

Vous devez utiliser deux signes égal == pour signifier « égal à » car un seul signe égal dans Apps Script attribue une valeur à une variable.

Conditions d’écriture

Vous pouvez utiliser des nombres, des chaînes et des variables pour former les conditions que vous pouvez insérer dans les instructions if. Vous comparerez souvent une variable à une valeur ou comparerez deux variables. Jetons un coup d’œil à quelques exemples et à ce qu’ils font :

Exemple de conditionQu’est ce que ça fait?
nom == ‘Oie’le contenu du nom de la variable est- il égal à « Goose » ?
nom != ‘Oie’le contenu du nom de la variable n’est-il PAS égal à « Goose » ?
taille de chaussure == 6le contenu de la variable shoeSize est- il égal à 6 ?
chaussureTaille > 6le contenu de la variable shoeSize est- il supérieur à 6 ?
taille de chaussure <= 6le contenu de la variable shoeSize est -il inférieur ou égal à 6 ?

Vous pouvez également combiner des conditions à l’aide d’opérateurs logiques (similaires à ceux que vous pouvez trouver lors de recherches avancées sur des bases de données en ligne, par exemple). Ceux-ci vous permettent d’utiliser et et ou dans vos conditions, vous pouvez donc avoir deux conditions qui doivent toutes deux être vraies (lors de l’utilisation de et ) ou deux conditions dont une seule doit être vraie (lors de l’utilisation de ou ) dans la même instruction if. .

Pour combiner des conditions avec un et, vous devez écrire && (deux esperluettes) entre elles et pour combiner des conditions avec un ou, vous devez écrire || (deux symboles de tuyaux) entre eux. Par exemple (shoeSize > 6 && shoeSize < 10) est vrai lorsque la valeur de shoeSize est supérieure à 6 mais inférieure à 10.

Créer des si

Nous disposons désormais de tous les éléments de base pour créer notre condition if. Nous pouvons choisir d’avoir uniquement la partie if , donc d’avoir du code qui s’exécute si la condition est vraie et rien ne se passe si elle est fausse, ou d’avoir également une partie else qui exécute du code si la condition est fausse.

// version with just if
if (name == 'Goose') {
    Logger.log(name + " is Goose");
}

// version with if and else
if (name == 'Goose') {
    Logger.log(name + " is Goose");
} else {
    Logger.log(name + "is not Goose");
}

Vous pouvez également ajouter d’autres conditions dans votre instruction if en utilisant else if afin que vous puissiez avoir un if, un else if, puis un else à la fin.