Utilisation de boucles
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Différencier les boucles while et do-while
- Utiliser les opérateurs d’incrémentation et de décrémentation pour contrôler l’exécution du code
Dans notre exemple Teatime, nous avons préparé du thé pour nos amis proches. Mais que se passerait-il si nous devions servir du thé à un groupe de 100 personnes ? Les mêmes étapes devront être répétées encore et encore jusqu’à ce que tout le monde soit servi. On dirait que cela va donner lieu à beaucoup de code redondant, n’est-ce pas ? C’est là que les boucles entrent en jeu.
Une boucle est un bloc de code qui est répété jusqu’à ce qu’une certaine condition soit remplie. Passons en revue les étapes devant être répétées dans le cas du code Teatime :
Add Tea and Sugar to Teacup Pour Tea in Teacup Put 1 teaspoon of Sugar in Teacup Stir Tea in Teacup Serve Tea to a Friend
Il est possible d’ajouter des étapes répétées à une boucle. Apex propose trois manières de faire s’exécuter du code en boucle : les boucles while
, do-while
et for
. Pour le moment, nous allons découvrir les boucles while
et do-while
. Comme leurs noms l’indiquent, les boucles while
et do-while
sont très similaires : les deux vérifient qu’une condition particulière est remplie. La différence entre elles repose dans le moment où celles-ci vérifient que la condition est remplie. Les boucles while
vérifient la condition avant de commencer à s’exécuter, alors que les boucles do-while
la vérifient après.
On pourrait croire qu’il s’agit d’un détail, mais cela a des conséquences importantes.
En effet, cela implique que la boucle do-while
est exécutée toujours au moins une fois, tandis que la boucle while
peut ne jamais être exécutée, en fonction de la condition.
Boucles while
La boucle while
commence par vérifier si une condition est remplie. Si la condition est vraie, la boucle réalise une action. Si elle est fausse, la boucle s’arrête.
Voici la syntaxe à employer :
While(condition) { //run this block of code }
Appliquons des boucles while
à notre code Teatime.
- Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
- Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
//Declare an Integer variable called totalGuests and set it to 100 Integer totalGuests = 100; //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar). Integer totalAmountSugar = 159; //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags). Integer totalAmountTea = 35; //Loop: Add a teaspoon of sugar and one tea bag to a tea cup. Serve until there is no sugar or tea left. While(totalGuests > 0) { System.debug(totalGuests + ' Guests Remaining'); //check ingredients if(totalAmountSugar == 0 || totalAmountTea == 0) { System.debug('Out of ingredients! Sugar: ' + totalAmountSugar + ' Tea: ' + totalAmountTea); break; //ends the While loop } //add sugar totalAmountSugar--; //add tea totalAmountTea--; //guest served totalGuests--; }
- Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
- Cochez la case Déboguer uniquement en bas de la fenêtre.
Non, la présence du signe --
n’est pas une erreur. Il s’agit de ce qu’on appelle un opérateur de post-décrémentation. C’est une manière abrégée d’indiquer qu’il faut faire décroître une valeur de 1. Ainsi, si la valeur de la variable totalAmountSugar
est égale à 159, il indique qu’il faut la décrémenter de sorte que sa valeur soit égale à 158. L’opérateur de post-incrémentation
++
fait l’inverse en faisant croître une valeur de 1.
Que se passe-t-il exactement ? Rappelez-vous, notre objectif principal est de servir du thé à 100 invités. À chaque fois que nous servons un invité, une portion de chaque ingrédient (totalAmountSugar
et totalAmountTea
) et un invité (totalGuests
) sont déduits. Lorsque la valeur de totalAmountSugar
ou totalAmountTea
atteint 0 (ligne 15) OU la valeur de totalGuests
atteint 0 (ligne 12), la boucle s’arrête et personne d’autre n’est servi.
Examinons maintenant comment fonctionne la boucle do-while
.
Boucles do-while
Une boucle do-while
permet au code d’effectuer une action avant que la condition ne soit testée.
La boucle do-while
commence par effectuer une action une première fois. Ensuite, une condition est vérifiée. Si la condition est vraie, l’action est à nouveau exécutée. Si elle est fausse, la boucle s’arrête.
Examinez la syntaxe employée :
Do { //run this block of code } while(condition);
- Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
- Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
//Declare an Integer variable called totalGuests and set it to 100 Integer totalGuests = 100; //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar). Integer totalAmountSugar = 159; //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags). Integer totalAmountTea = 35; do { //deduct sugar serving totalAmountSugar--; //deduct tea serving totalAmountTea--; //deduct guest totalGuests--; System.debug(totalGuests + ' Guests Remaining!'); //check ingredients if(totalAmountSugar == 0 || totalAmountTea == 0) { System.debug('Out of ingredients!'); break; //ends the While loop } } while(totalGuests > 0);
- Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
- Cochez la case Déboguer uniquement en bas de la fenêtre.
Vous avez déclaré des variables, instancié des valeurs, créé des listes et mis en place des boucles de données de plusieurs manières. Félicitations ! Vous avez terminé l’introduction à Apex et êtes sur la bonne voie pour approfondir vos connaissances en code.