第6回 スクリプト言語の書き方(繰り返し)

もっけ
もっけ

プログラムにおける制御構造は、「順次」「繰り返し」「分岐」という基本処理のことを指すよ。 プログラムはこの3つの制御構造を組み合わせることによって作られているんだ。

このページでは、「繰り返し」について説明していくよ。

3つの制御構造(繰り返し)

繰り返しとは、同じ処理を条件が成り立つ間は、繰り返し処理することです。前に進んでドアを開ける行為を3回行っています。

繰り返し

for文

for文は、繰り返し(ループ)処理を記述するためのものです。決まった回数を繰り返し処理します。
増減値は、オプションで省略可能です。省略した場合は、1になります。マイナス値も指定可能です。

for 変数 = 初期値, 終了値, [増減値] do
    処理
end

以下は、処理をループで5回実行します。

for i = 0, 5, 1 do
    print("数値", i) -- 実行結果は、1, 2, 3, 4, 5が順次表示される
end

以下は、増減値+2で処理をループで3回実行します。

for i = 0, 5, 2 do
    print("数値", i) -- 実行結果は、1, 3, 5が順次表示される
end

while文

while文は、条件式を満たす間は同じ処理を繰り返します。

while 条件式 do 
    処理
end

以下は、処理をループで5回実行します。

i = 1
while i <= 5 do 
    print("数値", i) -- 実行結果は、1, 2, 3, 4, 5が順次表示される
    i = i + 1
end

repeat文

repeat文は、while 文に似ています。 違いは繰り返す条件の判定を最後に行うこと、 判定が True の場合にループを終了することです。

繰り返す条件の判定を最後に行いますので、 repeat 文に記述された処理は、必ず1回は実行されます。

repeat 
    処理 
until 条件式

以下は、処理をループで4回実行します。

i = 1
repeat
    print("数値", i) -- 実行結果は、1, 2, 3, 4が順次表示される
    i = i + 1
until ( i >= 5 )  -- i = 5になると繰り返し処理は終了

break文

break文は、whilerepeatfor ループの実行を終了し、そのループの後の次の文まで飛びます。
ただし、break文は、ブロックの最後でしか使うことができません。 ブロックの最後とは、do〜endで囲まれたブロックのendの手前や、repeat untilで囲まれたブロックのuntilの手前です。

for i = 0, 5, 1 do
    print("数値", i) -- 実行結果は、1
    break
end

return文

return文は、ブロックの最後の文としてのみ書くことができます。 ブロックの途中で return することが本当に必要であれば、 明示的な内部ブロックを使うことができます。 つまり、 do return end という慣用句を使えば、 return は (内部) ブロックの最後の文となります。

for i = 0, 5, 1 do
    print("数値", i) -- 実行結果は、1
    return
end

コメント

タイトルとURLをコピーしました