繰り返しに使用される制御構文
繰り返しに使用される構文は4つです。
・for文(繰り返す回数が事前に分かっているとき)
・foreach文(配列やリストの要素を順番に処理していくとき)
・while文(繰り返す回数が分からないので、条件がtrueの間は繰り返す)
・do while(条件の判定がループ処理の最後なので、falseでもその回の処理は実行される)
繰り返し処理の中で、よく使われる予約語2つ
・continue(特定の条件を満たした時のループ処理をスキップ)
・break(特定の条件を満たした時にループ処理を終了)
今回はdo while文を学習していきます。
do while文
まずは構文の書き方です。
do
{
//処理内容;
}
while (条件);
特徴は、処理を実行した後に条件の判定を行うことです。
実行できるサンプルコードを書いてみます。
int number = 10;
do
{
Debug.Log(number);
number--;
}
while (number > 0);
カウントダウン処理を実行しましたが、初期値を次のように設定して、ループ処理の1回目から判定結果がfalseになるように書き換えてみます。
//1ループ目から判定がfalse
int number = 0;
do
{
Debug.Log(number);
number--;
}
while (number > 0);
1回目のループでの判定からfalseが返ってきます。for文を使っていた場合は何の応答もなくループ処理は終了です。もしくはelse文を別途記述してfalseだった場合の条件処理を記述します。
do while文で記述していた場合は1回目のループがfalseであったとしても、1回目で判定された値をコンソールに出力することができています。
少しゲームをイメージしたサンプルコードを見てみます。
bool isPlaying = true;
int i = 0; //試行回数カウンター
do
{
Debug.Log("正解の番号を選択してください");
//1から5のランダムな整数を生成
System.Random random = new System.Random();
int randomNumber = random.Next(1, 6);
Debug.Log("選択された番号は:" + randomNumber);
i++;
//3が選択されたらループ処理を終了させる
if (randomNumber == 3)
{
isPlaying = false;
}
}
while (isPlaying);
Debug.Log(i + "回でクリアしました");
プレイヤーが正解の番号を当てるとゲームクリアになるシステムです。サンプルコードでは条件がtrueの間、何度でも回答できるようになっています。今回は回答の数値をランダムに出力させていますが、実際のゲームではプレイヤーに回答させます。
何回目でプレイヤーが正解を出すのかわからない場合の繰り返し制御ではdo while文は適しています。