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増やす書き方です。
| 条件を調べるときのcount | count < 3 | すること |
|---|---|---|
| 0 | true | 表示して、countを1にする |
| 1 | true | 表示して、countを2にする |
| 2 | true | 表示して、countを3にする |
| 3 | false | ループを終える |
ログには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となって終わります。
