Apex - Boucle For de type Java

Il existe une méthode traditionnelle de type Java for boucle disponible dans Apex.

Syntaxe

for (init_stmt; exit_condition; increment_stmt) { code_block }

Représentation schématique

Exemple

Prenons l'exemple suivant pour comprendre l'utilisation de la boucle for traditionnelle -

// The same previous example using For Loop
// initializing the custom object records list to store the Invoice Records
List<apex_invoice__c> PaidInvoiceNumberList = new List<apex_invoice__c>();

PaidInvoiceNumberList = [SELECT Id,Name, APEX_Status__c FROM APEX_Invoice__c WHERE 
   CreatedDate = today];

// this is SOQL query which will fetch the invoice records which has been created today
List<string> InvoiceNumberList = new List<string>();

// List to store the Invoice Number of Paid invoices
for (Integer i = 0; i < paidinvoicenumberlist.size(); i++) {
   
   // this loop will iterate on the List PaidInvoiceNumberList and will process
   // each record. It will get the List Size and will iterate the loop for number of
   // times that size. For example, list size is 10.
   if (PaidInvoiceNumberList[i].APEX_Status__c == 'Paid') {
      
      // Condition to check the current record in context values
      System.debug('Value of Current Record on which Loop is iterating is 
         '+PaidInvoiceNumberList[i]);
      
      //current record on which loop is iterating
      InvoiceNumberList.add(PaidInvoiceNumberList[i].Name);
      // if Status value is paid then it will the invoice number into List of String
   }
}

System.debug('Value of InvoiceNumberList '+InvoiceNumberList);

Étapes d'exécution

Lors de l'exécution de ce type de for loop, le moteur d'exécution Apex effectue les étapes suivantes -

  • Exécutez le init_stmtcomposant de la boucle. Notez que plusieurs variables peuvent être déclarées et / ou initialisées dans cette instruction.

  • Effectuer la exit_conditionvérifier. Si vrai, la boucle continue et si faux, la boucle se termine.

  • Exécutez le code_block. Notre bloc de code consiste à imprimer les nombres.

  • Exécutez le increment_stmtdéclaration. Il augmentera à chaque fois.

  • Revenez à l'étape 2.

Comme autre exemple, le code suivant génère les nombres 1 à 100 dans le journal de débogage. Notez qu'une variable d'initialisation supplémentaire, j, est incluse pour illustrer la syntaxe:

//this will print the numbers from 1 to 100}
for (Integer i = 0, j = 0; i < 100; i++) { System.debug(i+1) };

Considérations

Tenez compte des points suivants lors de l'exécution de ce type de for loop déclaration.

  • Nous ne pouvons pas modifier la collection en l'itérant. Supposons que vous répétiez la liste a'ListOfInvoices', puis lors de l'itération, vous ne pouvez pas modifier les éléments de la même liste.

  • Vous pouvez ajouter un élément dans la liste d'origine lors de l'itération, mais vous devez conserver les éléments dans la liste temporaire lors de l'itération, puis ajouter ces éléments à la liste d'origine.