【9】Forループ(タスクを繰り返す)

コードを繰り返し実行する方法はいくつかあります。コードを特定の回数だけ実行したい場合は、forループ を使用します。1秒ずつカウントダウンするタイマーなどが良い例です。コードを繰り返す回数が分からないときは、ループで説明したようにwhileループを使用します。

forループの仕組み

forループでは、制御変数終了値増加値の3つの値を用いて、実行される回数をコントロールします。まず、制御変数の値から開始され、終了値に到達するまでカウントアップ、またはカウントダウンします。増加値がプラスならカウントアップ、増加値がマイナスならカウントダウンになります。

forループのステップ

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

コードを実行した後、制御変数に増加値が加算されます。

次に、制御変数が確認され、最初から繰り返されます。

制御変数が終了値を超えると、ループは停止します。

例えば、ループの終了値が10であれば、制御変数が10を超えた時点でループは停止します。

forループをコーディングする

forループの仕組みを理解するために、10からスタートし、0まで1ずつカウントダウンされるforループを作成します。ループが実行されるたびに、制御変数の現在の値を表示します。

  1. ServerScriptServiceに、PracticeLoop という名前の新しいスクリプトを作成します。
  2. forループを開始させるには、キーワード for を入力します。
for

LUAのキーワード
コードにおけるキーワードとは、その目的以外に使用されない特定の目的を持つワードのことを指します。例えば、while と入力するとwhileループの作成が始まります。キーワードを変数名として使用することはできません。つまり、for while といった名称を変数名として使用するとエラーになるということになります。

  1. count という名前の制御変数を作成し、開始値を10とします。
for count = 10

制御変数の名前を付ける
制御変数は変数として適切な名称であれば、どんな名前でもかまいません。他の変数名と同じように、制御変数の名前はforループの機能を明確で分かりやすく説明するものが良いでしょう。

  1. , 0」と入力して、終了値0 に設定します。必ずカンマを使用して値を区切るようにしてください。
for count = 10, 0
  1. , -1」と入力して、増加値-1 に設定します。ループの動作が終わると制御変数に増加値が加算され、カウントされます。ここでは増加値がマイナスなので、count+ (-1) という式になり、制御変数countが1つ少なくなるという結果になります。
for count = 10, 0, -1

増加値はオプション
forループの増加値は必ずしも指定する必要はありません。増加値が指定されていないと、forループはデフォルトでループ1回ごとに1が加算されます。3つ目の数字はないので、制御変数と終了値を区切るカンマも1つになります。例:for count = 0, 10
ただし、増加値を減算させたい場合は省力できません。例:for count = 10, 0,-1

  1. forループを終了させるには、do と入力して、[Enter]を押し、end を追加します。doend の間に入力されたコードはループが繰り返されるたびに実行されます。
for count = 10, 0, -1 do
 
end
  1. 1秒ずつのカウントダウンを作成するためには、count の値を表示し、wait関数を使用してタイマーを作成します。
for count = 10, 0, -1 do 
    print(count)    -- forループの現在の数字を出力する
    wait(1)         -- 1秒待つ
end

変数を出力する
出力されるものは文字列ではなく変数なので、コーテーションマークを入れる必要はありません。

  1. プロジェクトを実行し、Outputウィンドウにforループが表示されることを確認します。

ループが反復されるたびに現在の count の値が表示されます。反復とは、制御値を確認し、コードを実行し、増加値を更新するという一連のプロセスです。制御変数は0から開始され、10を超える必要があるので、ループは停止されるまでに11回反復されます。

問題解決のヒント
・forループの数字は、2つのカンマによって区切られていることを確認します。カンマが多すぎたり少なすぎたりすると、ループは開始されません。
・countの値が一気に表示してしまう場合は、wait関数のパラメーターが1以上になっているかどうかを確認してください。

様々なforループの例

制御変数、終了値、増加値を変えれば、ループの動きを変えることができます。先ほど作成したforループを変更して、10までカウントアップしたり、奇数ずつカウントアップするものを作成できます。以下に、様々なforループの例を示します。

1ずつカウントアップする

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

偶数ずつカウントアップする

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

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

下記のように制御変数が最初から終了値を超えており、しかも増加値がプラスの場合は、永久に終了値を超える(この場合は0より小さくなるということ)ことがないため、forループは1度も実行されることはありません。

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

また下記のような場合も、永久に終了値を超えることがないため、forループは1度も実行されることはありません。

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

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です