こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「while文ってなに?」
「while文はどうやって使うの?」
というお悩みの方に向けた内容となっています。
Unityで使うC#では、何度も繰り返す処理を作る際に、while文というものを使います。
このwhile文とは、条件を指定してその条件がture(真)の間だけ、中に書いた処理を繰り返すということを行います。
繰り返す回数を指定する場合はfor文の方が使いやすいですが、繰り返す回数が決まっていないような場合はwhile文が使えます。
そこで、このページでは、UnityのC#で使えるwhile文について、どういうものなのか、また使い方までをまとめていきます。
while文とは?
まずは、while文がどういうものなのか紹介していきます。
条件式がtrueの間だけ指定した処理を繰り返す役割
while文とは、条件式を指定してその条件がtrue(真)の間だけ処理を繰り返すことができる構文です。
例えば、持っている所持金1,000円を全部使って、30円の薬草を買うという処理を考えてみます。
所持金が30円を下回ったら薬草が買えなくなるため、条件として所持金が30円以上の場合にだけ薬草を買うという処理を繰り返すことになります。

このように条件を指定して処理を繰り返すような時に、while文を活用することができます。
繰り返す回数が決まっていない時に使われる
while文は、基本的に処理を繰り返す回数が決まっていないような場合に使われます。
先ほどの薬草を買う例では、元の所持金が状況によって変わると、薬草を買える回数が変わるため、その処理を繰り返す回数も変わってきます。
このように、初めから処理を繰り返す回数が分からない場合に使うのがwhile文です。
ちなみに、while文と同様に、繰り返しの処理を行える構文としてfor文というものがあります。
このfor文は、ループ変数を使って処理を繰り返す回数を指定して使うことになるので、初めから処理を繰り返す回数が決まっている場合に使います。
while文の使い方
ここからは、while文の使い方について紹介していきます。
while文の記述方法
while文を使う場合は、以下のように記述して使います。
while(条件文)
{
// 繰り返す処理を記述 //
}上記のように、whileの後ろで条件を指定してあげることで、その条件がtrueの間だけ中に書いた処理が繰り返されることになります。
なお、注意点として、条件が常にtrueの状態になると、処理が無限ループされてしまいUnityが固まってしまうので注意しておきましょう。
そのため、処理を繰り返したときにちゃんと条件がfalseになるのを確認するか、もしくはbreak文を使って強制的にループ処理を止める必要があります。
また、他にもcontinue文を使って特定の場合に処理をスキップすることもできます。
Unity上で反復した処理を行う
実際に、Unity上でwhile文を使った反復処理を作ってみます。
例でも紹介しましたが、ここでは所持金を200円持っていて、全ての金額を使い30円の薬草を買うという簡単な処理を繰り返してみます。
空のオブジェクトを作成して、以下のスクリプトをアタッチしておきます。
using UnityEngine;
public class Test : MonoBehaviour
{
int money = 200; // 所持金額
int price = 30; // 薬草の価格
void Start()
{
while (money >= price) // 所持金が薬草の価格よりも多い場合
{
BuyHerb(); // 薬草を購入する処理
}
}
void BuyHerb()
{
Debug.Log("薬草を買った!");
money -= price; // 所持金から薬草の価格を引く
}
}Startメソッドの中の10行目でwhile文を記述して、所持金が薬草よりも多いかどうかを条件で指定しています。
そして、12行目で条件がtrueの際はBuyHerbというメソッドの処理を繰り返すようにしています。
BuyHerbメソッドの中では、19行目で所持金から薬草の価格を引くように処理をおこなっています。
これでゲームを実行してみると、

薬草を買った処理が6回繰り返されて、所持金が薬草を買えなくなったら処理が終了しています。
まとめ
このページでは、UnityのC#で使えるwhileという構文について、どんな仕組みなのか、使い方までをまとめていきましたが、いかがでしたでしょうか?
while文とは、指定した条件がtrueの間だけ記述した処理を繰り返すことができるループ構文の一つです。
ループ処理を作るのによく使うfor文と比較して、while文は繰り返す回数が決まっていない処理を作る際に使われることがあります。
ただし、while文は条件指定次第で無限ループとなってしまい、Unityのフリーズする原因となりますので、注意して使うようにしましょう。
最後までお読みいただきまして、ありがとうございました!





コメント