Skip to main content
From 16:00 UTC on January 17, 2026, to 20:00 UTC on January 17, 2026, we will perform planned maintenance on the Trailhead, myTrailhead, and Trailblazer Community sites. During the maintenance, these sites will be unavailable, and users won't be able to access them. Please plan your activities around this required maintenance.

ループの使用

学習の目的

この単元を完了すると、次のことができるようになります。

  • while ループと do-while ループの違いを理解する。
  • 増分演算子と減分演算子を使用してコードの実行を制御する。

Teatime の例では、ポット一杯の紅茶を淹れて親しい友人と共有します。もし 100 人のグループに紅茶を出す必要があるとしたら、どうなるでしょうか? 全員にお茶が行き渡るまで、何度も繰り返して同じ手順を実行する必要があります。大変な量の冗長コードになりそうです。そこで役に立つのがループです。

ループは、特定の条件を満たすまで反復するコードブロックです。Teatime コードの場合はどうなるか、反復するステップを確認しましょう。

Add Tea and Sugar to Teacup
Pour Tea in Teacup
Put 1 teaspoon of Sugar in Teacup
Stir Tea in Teacup
Serve Tea to a Friend

反復するステップをループに追加できます。Apex には、3 つのループ方法 (while ループ、do-while ループ、for ループ) があります。ここでは、while ループと do-while ループを取り上げます。名前のとおり、while ループと do-while ループはよく似ています。どちらも特定の条件を満たしていることを確認します。違いは、条件を満たしていることをいつ確認するかにあります。While ループでは、ループを開始するに条件をチェックし、do-while ループでは、ループが終了したにチェックします。

ささいな違いのように思えますね。実際には、かなり大きな影響があります。

次のように考えてください。do-while ループは常に少なくとも 1 回実行されます。while ループは、条件によっては 1 回も実行されないことがあります。

while ループ

while ループは、条件を満たしていることを確認して開始します。条件が true の場合、処理を実行します。false の場合、ループは停止します。

true か false か確認される条件で構成される、while ループのプロセスフロー図。条件が true の場合、ループは続行します。条件が false の場合、ループは停止します。

Note

フローチャートの記号と表記法を再確認する場合は、こちらをクリックしてください。

構文は次のとおりです。

While(condition) {
    //run this block of code
}

while ループを Teatime コードに適用してみましょう。

  1. 開発者コンソールで、[Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] をクリックします。
  2. 次のコードをコピーして、[Enter Apex Code (Apex コードを入力)] ウィンドウに貼り付けます。
    //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
    //Loop: Add a teaspoon of sugar and one tea bag to a tea cup. Serve until there is no sugar or tea left.
    While(totalGuests > 0) {
        System.debug(totalGuests + ' Guests Remaining');
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0) {
            System.debug('Out of ingredients! Sugar: ' + totalAmountSugar + ' Tea: ' + totalAmountTea);
            break; //ends the While loop
        }
        //add sugar
        totalAmountSugar--;
        //add tea
        totalAmountTea--;
        //guest served
        totalGuests--;
    }
  1. [Open Log (ログを開く)] チェックボックスをオンにして、[Execute (実行)] をクリックします。実行ログが開き、コードの実行結果が表示されます。
  2. ウィンドウ下部の [Debug Only (デバッグのみ)] チェックボックスをオンにします。

-- 記号はタイプミスではありません。これは後置減分演算子と呼ばれます。「ある数値をこの値から減算する」を短く表現したものです。totalAmountSugar が159 と等しい場合、減分し、totalAmountSugar の値は 158 と等しくなります。後置増分演算子 ++ は逆の操作を実行します。つまり、ある数値を値に加算します。

一体何が起きているのでしょうか? ここでは 100 人のゲストに紅茶を出すという 大きな目標が 1 つあります。ゲストに紅茶を出すたびに、1 回分の各材料 (totalAmountSugartotalAmountTea) およびゲスト (totalGuests) が差し引かれます。totalAmountSugar または totalAmountTea が 0 になるか (行 15)、または totalGuests が 0 になると (行 12)、ループは停止して、それ以外の人には紅茶は出されません。

次は、do-while ループのしくみを見てみましょう。

do-while ループ

do-while ループでは、条件が評価される前に、コードは 1 回処理を実行できます。

do-while ループは、開始後に 1 回タスクを実行します。次に、条件が確認されます。条件が true の場合、タスクを再度実行します。false の場合、ループは停止します。

実行されるコードブロックと、実行後に true か false か確認される条件で構成される、do-while ループのプロセスフロー図。条件が true の場合、ループは続行します。条件が false の場合、ループは停止します。

構文を見てみましょう。

Do {
    //run this block of code
} while(condition);
  1. 開発者コンソールで、[Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] をクリックします。
  2. 次のコードをコピーして、[Enter Apex Code (Apex コードを入力)] ウィンドウに貼り付けます。
    //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
    do {
        //deduct sugar serving
        totalAmountSugar--;
        //deduct tea serving
        totalAmountTea--;
        //deduct guest
        totalGuests--;
        System.debug(totalGuests + ' Guests Remaining!');
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0) {
            System.debug('Out of ingredients!');
            break; //ends the While loop
        }
    } while(totalGuests > 0);
  1. [Open Log (ログを開く)] チェックボックスをオンにして、[Execute (実行)] をクリックします。実行ログが開き、コードの実行結果が表示されます。
  2. ウィンドウ下部の [Debug Only (デバッグのみ)] チェックボックスをオンにします。

ここまでに、変数の宣言、値のインスタンス化、リストの作成、データの複数のループ方法を実際に行いました。以上です。Apex の概要の学習を完了して、コードについてより深く理解するための道を着実に進んでいます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む