Skip to main content

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.

Représentation graphique des opérations réalisées par une boucle while, consistant à la vérification d’une condition pour déterminer si elle est vraie ou fausse. Si la condition est vraie, la boucle continue. Si elle est fausse, la boucle s’arrête.

Remarque

Remarque

Si vous avez besoin d’un rappel sur les symboles et les notes d’organigramme, cliquez ici.

Voici la syntaxe à employer :

While(condition) {
    //run this block of code
}

Appliquons des boucles while à notre code Teatime. 

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. 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--;
    }
  3. 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.
  4. 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.

Représentation graphique des opérations réalisées par une boucle do-while, consistant en l’exécution d’un bloc de code puis en la vérification d’une condition pour déterminer si elle est vraie ou fausse. Si la condition est vraie, la boucle continue. Si elle est fausse, la boucle s’arrête.

Examinez la syntaxe employée :

Do {
    //run this block of code
} while(condition);
  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. 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);
  3. 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.
  4. 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.

Ressources

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires