ループの使用
学習の目的
この単元を完了すると、次のことができるようになります。
- while ループと do-while ループの違いを理解する。
- 増分演算子と減分演算子を使用してコードの実行を制御する。
Teatime の例では、ポット一杯の紅茶を淹れて親しい友人と共有します。もし 100 人のグループに紅茶を出す必要があるとしたら、どうなるでしょうか? 全員にお茶が行き渡るまで、何度も繰り返して同じ手順を実行する必要があります。大変な量の冗長コードになりそうです。そこで役に立つのがループです。
ループは、特定の条件を満たすまで反復するコードブロックです。Teatime コードの場合はどうなるか、反復するステップを確認しましょう。
反復するステップをループに追加できます。Apex には、3 つのループ方法 (while
ループ、do-while
ループ、for
ループ) があります。ここでは、while
ループと do-while
ループを取り上げます。名前のとおり、while
ループと do-while
ループはよく似ています。どちらも特定の条件を満たしていることを確認します。違いは、条件を満たしていることをいつ確認するかにあります。While
ループでは、ループを開始する前に条件をチェックし、do-while
ループでは、ループが終了した後にチェックします。
ささいな違いのように思えますね。実際には、かなり大きな影響があります。
次のように考えてください。do-while
ループは常に少なくとも 1 回実行されます。while
ループは、条件によっては 1 回も実行されないことがあります。
while ループ
while
ループは、条件を満たしていることを確認して開始します。条件が true の場合、処理を実行します。false の場合、ループは停止します。
構文は次のとおりです。
while
ループを Teatime コードに適用してみましょう。
- 開発者コンソールで、[Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] をクリックします。
- 次のコードをコピーして、[Enter Apex Code (Apex コードを入力)] ウィンドウに貼り付けます。
- [Open Log (ログを開く)] チェックボックスをオンにして、[Execute (実行)] をクリックします。実行ログが開き、コードの実行結果が表示されます。
- ウィンドウ下部の [Debug Only (デバッグのみ)] チェックボックスをオンにします。
--
記号はタイプミスではありません。これは後置減分演算子と呼ばれます。「ある数値をこの値から減算する」を短く表現したものです。totalAmountSugar
が159 と等しい場合、減分し、totalAmountSugar
の値は 158 と等しくなります。後置増分演算子 ++
は逆の操作を実行します。つまり、ある数値を値に加算します。
一体何が起きているのでしょうか? ここでは 100 人のゲストに紅茶を出すという 大きな目標が 1 つあります。ゲストに紅茶を出すたびに、1 回分の各材料 (totalAmountSugar
と totalAmountTea
) およびゲスト (totalGuests
) が差し引かれます。totalAmountSugar
または totalAmountTea
が 0 になるか (行 15)、または totalGuests
が 0 になると (行 12)、ループは停止して、それ以外の人には紅茶は出されません。
次は、do-while
ループのしくみを見てみましょう。
do-while ループ
do-while
ループでは、条件が評価される前に、コードは 1 回処理を実行できます。
do-while
ループは、開始後に 1 回タスクを実行します。次に、条件が確認されます。条件が true の場合、タスクを再度実行します。false の場合、ループは停止します。
構文を見てみましょう。
- 開発者コンソールで、[Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] をクリックします。
- 次のコードをコピーして、[Enter Apex Code (Apex コードを入力)] ウィンドウに貼り付けます。
- [Open Log (ログを開く)] チェックボックスをオンにして、[Execute (実行)] をクリックします。実行ログが開き、コードの実行結果が表示されます。
- ウィンドウ下部の [Debug Only (デバッグのみ)] チェックボックスをオンにします。
ここまでに、変数の宣言、値のインスタンス化、リストの作成、データの複数のループ方法を実際に行いました。お疲れ様でした。Apex の概要の学習を完了して、コードについてより深く理解するための道を着実に進んでいます。