4-2 For ループの概要

コードを繰り返し実行するには、様々な方法があります。指定した回数だけ実行する場合は、for ループを使用します。ここでは、for ループの記述方法やコードの動きを学びます。カウントダウンのコーディングなど、いくつかの実用的な例を示します。

for ループのしくみ

for ループは、実行回数を制御するために、「制御変数」「終了値」「増減値」の 3 つの値を使用します。for ループは、制御変数の値から始まり、終了値を渡すまで、ループ内でコードを実行するたびにカウントアップまたはカウントダウンします。増減値がプラスの場合はカウントアップし、マイナスの場合はカウントダウンします。

for ループのステップ

for ループを理解するには、進行状況のロジックを示すフローチャートを見ると分かるでしょう。

まず、for ループは制御変数を終了値と比較します。

コードを実行すると、増減値が制御変数に加算されます。その後、ループは制御変数をチェックして最初からやり直します。

制御変数が終了値を超えると、ループは停止します。たとえば、ループの終了値が 10 の場合、制御変数が 10 を超えると、for ループは終了します。

カウントダウンをコーディングする

for ループの動作確認をしてみます。10 から始まり、1つずつ減らして、0 までカウントダウンする for ループをコーディングします。ループが実行されるたびに、制御変数内の現在の値が表示されます。

  1. ServerScriptServiceで、 PracticeLoopという名前の新しいスクリプトを作成します。スクリプトで、キーワード for を入力するところから始めます。
for
  1. countという名前の制御変数を作成し、開始値を 10 に設定します。
for count = 10
  1. 「, 0」と入力して、終了値を 0 に設定します。値を区切るために必ずカンマを入力してください。
for count = 10, 0
  1. さらに「, -1」と入力します。これが増減値となります。ループがそのアクションを終了した後、増減値を制御変数 count に加算します。-1 を加算するということは、1つ減るということを意味します。
for count = 10, 0, -1
  1. for ループを終了するには、 do と入力して Enter を押し、 end を追加します。do と end の間に入力されたコードは、ループが繰り返されるたびに実行されます。
for count = 10, 0, -1 do

end
  1. ループ内で、制御変数 count の値を表示してカウントダウンを作成し、wait 関数で1秒待ちます。
for count = 10, 0, -1 do
    -- forループが進行している現在の番号を表示します
    print(count)
    -- 1秒待ちます
    wait(1)
end
  1. プロジェクトを実行し、出力ウィンドウを見て for ループを確認します。

トラブルシューティング

この時点で、ループが意図した通りに機能しない場合は、次のいずれかを試してください。

  • for ループ内の数値を区切る2カンマは2つありますか? カンマが多かったり少なかったりするとループが開始されなくなります。
  • for ループが一気に10から0までの数値を表示する場合は、wait 関数のパラメータが小さすぎるということです。

さまざまな for ループの例

制御変数、終了値、増減値を変更すると、ループの機能が変わります。

下記の例は、開始値、終了値、増減値が異なる for ループです。それらをスクリプトに入れてみて、何が起こるか見てみましょう。

1ずつカウントアップ

for count = 0, 5, 1 do
    print(count)
    wait(1)
end

偶数のカウントアップ

for count = 0, 10, 2 do
    print(count)
    wait(1)
end

for ループがまったく実行されない場合

以下の例のように、制御変数が終了値を超えてスタートする場合、for ループはまったく実行されません。この場合、for ループはカウントアップし、count が 0 より大きいかどうかをチェックします。for ループが最初のチェックを行うと、10 が 0 より大きいことがわかるため、ループ内は実行されず何も表示されません。

for count = 10, 0, 1 do
    print(count)
    wait(1)
end

返信を残す