10. 繰り返し処理

同じ文章を3回表示してみます。処理を繰り返す書き方を「ループ」と呼びます。

whileはScriptによる加工ジョブの初回全量完了、forはSmelting研究で解放されます。まだ使えない場合は設備と研究の解放を確認してください。

whileで条件を調べながら繰り返す

ArcaneScript
public class Program : ArcaneProgram
{
    public void OnStart()
    {
        int count = 0;
        while (count < 3)
        {
            Workshop.Log.Write("Working.");
            count++;
        }
    }
}

whileは括弧の中がtrueならブロックを実行し、また条件を調べます。count++はcount = count + 1と同じく1増やす書き方です。

条件を調べるときのcountcount < 3すること
0true表示して、countを1にする
1true表示して、countを2にする
2true表示して、countを3にする
3falseループを終える

ログにはWorking.が3回出ます。count++を忘れると0のままなので終わりません。このゲームでは処理回数の上限に達すると停止します。

forで回数をまとめて書く

同じ繰り返しをfor (int count = 0; count < 3; count++)と書けます。その後の波括弧にはWriteの文だけを入れます。

ArcaneScript
public class Program : ArcaneProgram
{
    public void OnStart()
    {
        for (int count = 0; count < 3; count++)
        {
            Workshop.Log.Write("Working.");
        }
    }
}

forの括弧の中はセミコロンで三つに分かれます。最初の部分でcountを一度だけ0にし、真ん中で各回の実行前に条件を調べ、最後の部分で各回の実行後に1増やします。

繰り返すのは波括弧の中だけです。その後に書いた文はループが終わってから実行します。

採掘の完了をループで待たない

ループはその場で処理を繰り返します。1回ごとにゲーム内の時間が進み、採掘が完了するわけではありません。採掘の様子は前の章のOnTickで確認します。

練習問題

例のwhileでWorking.を5回表示するにはどこを変えればよいでしょうか。最後に条件を調べるときのcountも考えてください。

解答例を表示する解答例を閉じる

count < 3をcount < 5にします。countが0、1、2、3、4のときに表示し、5になったら条件がfalseとなって終わります。