Skip to main content

Utilisation d’une boucle for pour parcourir une liste

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Déterminer à quel moment utiliser une boucle for traditionnelle et à quel moment employer une boucle for d’itération de liste ou d’ensemble
  • Écrire une boucle for traditionnelle et une boucle for d’itération de liste

Vidéo de démonstration Trail Together

Vous souhaitez être guidé pas à pas par un expert pendant que vous travaillez sur cette étape ? Regardez cette vidéo qui fait partie de la série Trail Together sur Trailhead Live. 

(Ce clip commence à 1 h 03 min 34 s, au cas où vous voudriez revenir en arrière et regarder à nouveau le début de l’étape.)

Introduction

Comme vous l’avez appris dans le module Bases d’Apex pour les administrateurs, une boucle est un bloc de code qui est répété jusqu’à ce qu’une condition spécifiée soit remplie. Elle vous permet de répéter une tâche de nombreuses fois. Dans Apex, il existe trois types de boucles. Vous avez déjà utilisé les boucles while et do-while. Le troisième type de boucle s’appelle for. Une boucle for répète des éléments tout comme les boucles while et do while, mais peut également répéter une liste ou un ensemble. (Vous pouvez également employer des boucles for avec SOQL, mais chaque chose en son temps).

Dans cette unité, vous découvrirez deux types de boucles for :

  • La boucle for traditionnelle
  • La boucle for d’itération de liste ou d’ensemble

Boucle for traditionnelle

Pour rappel, les boucles while et do-while précisent une condition contrôlant le nombre de fois qu’un bloc de code est exécuté. La boucle se termine lorsque la condition est fausse. Les boucles for procèdent de la même manière, mais présentent une syntaxe plus simple. 

Voici le fonctionnement : lorsque la boucle commence, elle initialise un compteur. Ensuite, elle vérifie si la condition de boucle est vraie. Si la réponse est oui, la boucle effectue une action, met à jour le compteur et vérifie de nouveau la condition. Lorsque la réponse est non, la boucle s’arrête.

Diagramme du workflow d’une boucle for classique.

L’instruction de déclaration de boucle procède à ces trois actions :

  1. Initialisation à 0 de la variable i.
  2. Spécification de la condition i < 5.
  3. Incrémentation de la variable i par un i++.

for(Integer i = 0; i<5; i++){ //Bloc de code }

Lorsque la boucle commence, la variable i vaut 0, ce qui est inférieur à 5. La condition est true, donc la boucle s’exécute une fois. À la fin de cette itération, la variable est incrémentée et i vaut alors 1, ce qui est toujours inférieur à 5. La boucle s’exécute donc à nouveau. Ce cycle continue jusqu’à ce que l’on parvienne à i = 5. Ensuite, comme la condition est devenue false, la boucle se termine.

Écriture et exécution d’une boucle for traditionnelle

  1. Dans la Developer Console, cliquez sur Debug (Débogage) | Open Execute Anonymous Window (Ouvrir la fenêtre d’exécution anonyme).
  2. Dans la fenêtre Enter Apex Code (Entrer du code Apex), collez le code suivant :
  3. for(Integer i = 0; i < 5; i++){
        System.debug('The number is ' + i );
    }
  4. Exécutez le code et consultez le journal de débogage.

Vous devriez voir s’afficher cinq entrées, présentant l’augmentation du nombre de zéro à quatre. 

[2]|DEBUG| Le nombre est 0.[2]|DEBUG| Le nombre est 1.][2]|DEBUG| Le nombre est 2.[2]|DEBUG| Le nombre est 3.[2]|DEBUG| Le nombre est 4.

Minute. Si les boucles while et do-while font la même chose que les boucles for, à quoi bon utiliser ces dernières ? À cela, deux raisons : 

  1. Les boucles for sont utilisées lorsque vous savez combien de fois la boucle doit s’exécuter. Si vous souhaitez que votre boucle s’arrête en fonction d’une autre condition que le nombre d’exécutions, utilisez la boucle while.
  2. Les boucles for sont plus concises car elles regroupent les trois composantes en une seule instruction : la variable, la condition et l’incrément.

Observez cet exemple, d’abord écrit comme une boucle while puis comme une boucle for.

Boucle while

Integer i = 0;
while (i < 5){
    System.debug('The number is ' + i);
    i++;
}

Boucle for

for(Integer i = 0; i < 5; i++){
    System.debug('The number is ' + i );
}

Le code de la boucle for est plus compact. Il fait la même chose que la boucle while, mais avec trois lignes de code au lieu de cinq. Une différence de deux lignes de code peut vous sembler dérisoire à ce stade, mais lorsque votre organisation en contiendra des milliers, vous souhaiterez que votre code soit le plus léger possible.

Boucles for d’itération de liste ou d’ensemble

La boucle for d’itération de liste ou d’ensemble (boucle for d’itération) est une variante de la boucle for traditionnelle. La boucle for d’itération parcourt les éléments d’une liste ou d’un ensemble. Comme la liste ou l’ensemble contient un nombre défini d’éléments, il est ici inutile d’incrémenter une variable ou de vérifier une condition. La boucle parcourt tous les éléments de la liste ou de l’ensemble, puis se termine.

La syntaxe d’une boucle for d’itération est légèrement différente de la syntaxe d’une boucle for traditionnelle. Lorsque vous déclarez une boucle for d’itération, le type de données de la variable doit correspondre au type de données de la liste ou de l’ensemble. Voici la syntaxe à utiliser dans une boucle for d’itération.

for (data_type variable_name : list_name or set_name){
    // Loop body
}

Écriture d’une boucle for d’itération

Créons une boucle for d’itération qui parcourra cette liste.

List <String> tea = new List<String>{'Black Tea', 'Green Tea', 'Chai Tea'};

Vous remarquerez que la liste thé est du type de données string (chaîne). Pour déclarer la boucle for d’itération, nous utilisons le type de données de la liste (string) et le nom de la liste (thé).

for (String t :tea) 

Avant que la boucle débute, cette instruction effectue ces deux actions :

  1. Déclaration de la variable t avec le type de données string (qui correspond au type de données de la liste).
  2. Spécification de la liste « thé » comme liste parcourue par la boucle.

La déclaration de la liste et celle de la boucle for d’itération maintenant réalisées, tout ce qu’il nous reste à faire est de les intégrer au corps de la boucle pour être prêts à exécuter le code.

Exécution du code

  1. Dans la Developer Console, cliquez sur Debug (Débogage) | Open Execute Anonymous Window (Ouvrir la fenêtre d’exécution anonyme).
  2. Dans la fenêtre Enter Apex Code (Entrer du code Apex), collez le code suivant :
  3. List <String> tea = new List<String>{'Black Tea', 'Green Tea', 'Chai Tea'};
    for(String t : tea){
        System.debug('We have ' + t);
    }
  4. Exécutez le code et consultez le journal de débogage.

Consultez le journal de débogage. Vous devriez y voir apparaître trois entrées indiquant que nous avons du thé noir, du thé vert et du thé chaï.

Journal de débogage avec trois entrées indiquant thé noir, thé vert et thé chaï.

Plutôt pas mal, non ?

Conclusion

Bravo ! Vous venez d’en apprendre beaucoup sur les boucles. Si vous avez des doutes sur un concept, consultez les ressources Apex, telles que le Guide du développeur Apex. En sachant où trouver les réponses à vos problèmes et en vous efforçant de les résoudre, vous arriverez à coder de plus en plus facilement en Apex au fil du temps. Soyez patient. Bon codage à vous !

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