ループ・ループ・ループ

ループ処理もプログラムに必ず出てくる構文です。
今回もまた今までの流れを中断して、基本概念であるループを使ってみましょう。

どんな時にループを使うのか

とにかく1フレーム内で繰り返さなければいけない場合に使用します。
例えば、以下のようなコードがあるとします。

if(x == 10)
{
	x += 1;
}

if(x == 11)
{
	x += 2;
}

if(x == 12)
{
	x += 3;
}

こんなコードはなかなか無いかもしれませんが、一例ですので気にせず…
これをループを使う事で以下のようになります。

for(var i = 0; i < 3; i++)
{
    if(x == 10 + i)
    {
        x += 1 + i;
    }
}

圧倒的に短くなりました。
ざっくり言うと、同じような処理を何度も繰り返している場合は一つにまとめる事が可能です。

主なループ構文

repeatループ

// repeat(回数)
repeat(10)
{
    show_debug_message("loop");
}

上記を書くと10回大括弧の中を処理します。
show_debug_message()関数はコンソールウィンドウに文字を表示する関数で、デバッグモード(テスト時)にしか使用しないものです。

単純に〇回ループしたいというだけの場合は高速なループになります。

forループ

//for(初期値; 継続条件; ループ毎の計算)
for(var i = 0; i < 10; i += 1)
{
	show_debug_message("loop" + string(i));
}

上記のコードは大括弧の中を10回処理します。repeatとの違いは変数iにはループ毎の計算結果が入ります。 例えば上記のコードであれば以下のような出力になります。

loop0
loop1
loop2
...
loop9

string()iを渡しているのは文字列型にするためですが、今は気にしなくて大丈夫です。
毎回のループで+1しているので、i1ずつ増えていきます。

継続条件を満たし続ける場合は無限ループになり、ゲーム自体が止まってしまうのでご注意ください。

forループは継続条件でループを続けるかどうかを決められるため、様々な場面で使用されます。

whileループ

var i = 0;

// while(継続条件)
while(i < 10)
{
	show_debug_message("loop" + string(i));
    i += 1;
}

whileループは継続条件を満たし続ける限りループします。
forループより更に簡単に無限ループになりやすいので注意してください。

まとめ

主に使用するのは以上のループになります。
これらは必要に応じて使い分けますが、主に使うのはrepeatforループかと思います。

ループ構文って見にくい

条件と処理を交互に見るような見方をになるので、ややこしく感じるかもしれません。
慣れると条件と処理は1度見れば把握できるようになるはずです。
必要に応じて本書でも使用していきますので、慣れが必要であることはご理解いただければと思います。

もどる