セーブポイントが見つからない

【Apex】繰り返し処理「Forループ」の使い方

こんにちは、にいるです

今回はApexのループに使用する構文について見ていきたいと思います

【ヘルプ】Apexの基本概念について
【ヘルプ】ループ

1.ループとは

ループとは、処理を繰り返すことで、Apexでは下記、5つの構文がサポートされています

for文の種類 内容
Do-Whileループ 先に処理を実行して、その後に条件を評価する
Whileループ 先に条件を評価して、その後に処理を実行する
Forループ 条件に合致する分だけ処理を行う
リスト反復またはセット反復のForループ 予め取得したリストやセットのレコード件数分、処理を行う
SOQL Forループ 処理実行の前に、取得したレコード件数分、処理を行う

ループにもwhileなどの条件を使用した構文がありますが、Ifとの併用も可能です

それぞれどのような使い方か結果と合わせて見ていきます
※インクリメントという言葉が出てきますが、インクリメントとは数字を1ずつ加算することです

2.Do-Whileループ

Do-Whileループは先に処理を行います
なので、この構文だと何がどうであれ、条件評価を最後に行うので一度は必ず処理が実行されます

結果は下記のように、4回の処理が走っています
 

 

3.Whileループ

Whileループは先に条件評価を行い、合致すれば処理が実行されます

結果は下記のように、4回の処理が走っています
 

 

4.Forループ

この形が一般的なForループの構文だと思います
処理を続ける条件(i

結果は下記のように、4回の処理が走っています  
 

5.リスト反復またはセット反復のForループ

リスト反復またはセット反復のForループもよく使うかと思います
For文の中で型と変数宣言をして、その変数にListのデータを代入していきます

結果は下記のように、取得したレコード件数分の5回の処理が走っています
 

 

6.SOQL Forループ

SOQL ForループはFor文の実行前にSOQLでレコードを取得できる構文です

結果は下記のように、取得したレコード件数分の5回の処理が走っています
 


 

7.まとめ

いかがでしたでしょうか

プログラムで同じ処理をする場合は、for文を使う必要があります
Apexにはガバナ制限があるので、for文を使う場合に一定の制約があります
そこも踏まえてコーディングをしないといけないため、難しく感じるかもしれません
ただ、まずは基本的な構文を覚えておかないとガバナ制限を気にすることもないので、for文はしっかり覚えておきたいですね

ぜひ、みなさんも実際に手を動かして書いてみてください

他にも色々と標準機能やSalesforce機能について紹介しています
そのまとめ一覧ページはこちらになりますので、よければ見てみてください

ではでは!