Apex - 类似 Java 的 For 循环
Apex 中有一个传统的类似 Java 的 for 循环。
语法
for (init_stmt; exit_condition; increment_stmt) { code_block }
流程图

示例
考虑以下示例来了解传统 for 循环的用法 −
// 与前面使用 For 循环的示例相同 // 初始化自定义对象记录列表以存储账单记录 List<apex_invoice__c> PaidInvoiceNumberList = new List<apex_invoice__c>(); PaidInvoiceNumberList = [SELECT Id,Name, APEX_Status__c FROM APEX_Invoice__c WHERE CreatedDate = today]; // 这是 SOQL 查询,它将获取今天创建的账单记录 List<string> InvoiceNumberList = new List<string>(); // 存储已付账单的账单编号的列表 for (Integer i = 0; i < paidinvoicenumberlist.size(); i++) { // 此循环将迭代 List PaidInvoiceNumberList 并处理 // 每条记录。 它将获取列表大小并迭代循环的数量 // 乘以该大小。 例如,列表大小为 10。 if (PaidInvoiceNumberList[i].APEX_Status__c == 'Paid') { // 检查上下文值中当前记录的条件 System.debug('Value of Current Record on which Loop is iterating is '+PaidInvoiceNumberList[i]); //循环正在迭代的当前记录 InvoiceNumberList.add(PaidInvoiceNumberList[i].Name); // 如果状态值已支付,那么它将账单号码放入字符串列表中 } } System.debug('Value of InvoiceNumberList '+InvoiceNumberList);
执行步骤
执行此类for循环时,Apex运行时引擎执行以下步骤 −
执行循环的init_stmt组件。 请注意,可以在此语句中声明和/或初始化多个变量。
执行exit_condition检查。 如果为 true,则循环继续,如果为 false,则退出循环。
执行code_block。 我们的代码块是打印数字。
执行increment_stmt语句。 每次都会增加。
返回步骤 2。
作为另一个示例,以下代码将数字 1 – 100 输出到调试日志中。 请注意,包含一个附加初始化变量 j 来演示语法:
//这将打印从 1 到 100 的数字} for (Integer i = 0, j = 0; i < 100; i++) { System.debug(i+1) };
注意事项
执行此类for 循环语句时请考虑以下几点。
我们无法在迭代集合时修改集合。 假设您正在迭代列表 'ListOfInvoices',那么在迭代时您无法修改同一列表中的元素。
迭代时可以在原始列表中添加元素,但迭代时必须将元素保留在临时列表中,然后将这些元素添加到原始列表中。