はじめに
今回は、Salesforceで使用する言語「Apex」の繰り返し処理についてまとめました。
Apexでの繰り返し処理の実装方法には複数あるので、それぞれの特徴について解説していきます。
繰り返し処理の種類
Apexの繰り返し処理は、主に下記の3つです。
- while ループ
- do-wile ループ
- for ループ
それぞれに特徴があり、適切な手法を選択することで無駄のない読みやすいコードを書くことに繋がります。
それでは、1ずつ解説していきましょう。
whileループ
whileループの構文は下記になります。
While(条件) {
// 処理
}
最初に条件を満たしていることを確認し、満たしている場合、処理を実行します。
例として、自動販売機で飲み物を5本買う処理をコードにしてみました。
// 買った飲み物の数
Integer BoughtDrinksNum = 0;
// BoughtDrinksNumが5より小さい場合、処理実行
While(BoughtDrinksNum < 5) {
// BoughtDrinksNumに1を加算
BoughtDrinksNum++;
}
BoughtDrinksNumが5になるまで1を足し続ける、つまり飲み物を5本買う処理になっています。
今回のように、ある変数に1を加算or減算する処理はよく使う処理なので覚えておきましょう。
whileループは、処理回数だけでなく様々な条件を指定できる点が強みです。
正直、回数が条件の場合は後述するforループの方が適切なので、処理回数以外を条件にする場合はwhileループが適切な場合が多いです。
do-whileループ
do-whileループは、名前を見てわかる通りwhileループと非常によく似ています。
違いは、whileループが最初に条件を評価するのに対し、do-whileループは処理の実行後に条件を評価します。
do-whileループの構文は下記になります。
Do {
// 処理
} while(条件)
Whileループの時と同様に自動販売機で飲み物を5本買う処理を書いてみます。
// 買った飲み物の数
Integer BoughtDrinksNum = 0;
Do {
// BoughtDrinksNumに1を加算
BoughtDrinksNum++;
// BoughtDrinksNumが5より小さい場合、処理実行
} While(BoughtDrinksNum < 5);
条件を最後に記述しており、処理の後に条件判定をしているのが特徴です。
Whileループとの大きな違いとしては、条件判定に関わらず必ず処理が1回実行される点です。
条件がfalseであっても必ず1回は処理を実行したいようなシチュエーションでは、Do-whileループを選択することになります。
forループ
forループの構文は下記になります。
for(変数; 条件; 増分) {
// 処理
}
Whileループの構文と違ってちょっとわかりにくいですね。
もう少しわかりやすく書くと下記のようになります。
for(Integer i = 0; i < 5; i++){
//処理
}
Integer i = 0
で変数と初期値を定義しています。
i < 5
で、条件を定義しています。
i++
で1処理毎の変数の増分を定義しています。
このように、forループ宣言時に条件だけでなく変数や増分まで定義できる点が特徴となります。
そのため、処理回数がわかっている処理についてはforループで書くと非常にシンプルになり、読みやすくなります。
先程までと同様に自動販売機で飲み物を5回買う処理を実装してみましょう。
for(Integer BoughtDrinksNum = 0; BoughtDrinksNum <= 5; BoughtDrinksNum++){
}
今回ような簡単な処理であれば、forループを宣言するだけで処理を記載しなくても実装できます。
このように、処理回数がわかっている処理についてはforループを使うのが適切です。
また、forループはリスト型のデータに対して繰り返し処理を実行することもできます。
リストの値それぞれに対して処理を実行したい場合にも使えるので、積極的に使っていきましょう。
おわりに
今回は、Apexの繰り返し処理についてまとめてみました。
最後までお読みいただきありがとうございました。