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

スポンサーリンク
繰り返し処理「Forループ」の使い方 Apex

こんにちは、にいるです

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

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

1.ループとは

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

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

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

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

2.Do-Whileループ

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

結果は下記のように、4回の処理が走っています
 
ApexのDo-Whileループ
 

3.Whileループ

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

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

4.Forループ

この形が一般的なForループの構文だと思います
処理を続ける条件(i < 5)は、取得したListのサイズを書いた方がいいと思います

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

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

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

結果は下記のように、取得したレコード件数分の5回の処理が走っています
 
Apexのリスト反復またはセット反復のForループ
 

6.SOQL Forループ

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

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

ApexのSOQL Forループ
 

7.まとめ

いかがでしたでしょうか

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

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

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

ではでは!

Salesforce 機能別 まとめページ

コメント

  1. Achan より:

    コーディング経験がない中Salesforceについて調べといてと言われ、ここへたどり着きました。詳しくまとめられていて、とても助かっております。
    質問なのですが、Do-Whileループの部分について、これって永遠にループしてしまう気がするのですが合っているでしょうか

    • niel より:

      コメントありがとうございます!
      そう言っていただけると励みになります。これからもよろしくお願い致します。

      ご指摘いただいたDoWhileについて、

      8行目が間違っていましたので、修正しました。(i<1 → i<5)

      DoWhileの考え方として、WhileのDo後、条件に合致した場合、処理を抜けます。

      そのため、この場合だとiが5になったら処理を抜けます。
      (i<1の場合でも、Whileの評価はDo後なので、1回だけ処理実行されます。)

      もし不明点がある場合には、一度、デバッグで試してみることをおすすめします!

タイトルとURLをコピーしました