今回はUnity上で特によく使う制御構造5種類を学んでいきます
制御構造
プログラムを実行するために条件に応じて実行内容を変化させる必要があります。
プログラムの途中で分岐やループをさせるための記述を制御構造と言います。
① if else文
if else文
ver hp = 50;
if(hp < 10) {
Debug.Log("HPが無くなりそうだよ!"); // HPが10未満の場合に表示される
} else if (hp < 30){
Debug.Log("HPが減ってきたよ") // HPが30未満の場合に表示される
} else {
Debug.Log("HPはまだあるよ"); // それ以外の場合に表示される
}
if else文は「もし〜であれば、それ以外の場合は」という条件で処理を分岐させる。
② for文
for文
for (var i = 0; i < 10; i++){ //i = 0から始まりiが10未満の場合は処理を繰り返し、処理の最後にiを1増やす
Debug.Log(i); //0~9までが順番に出力される
}
for (var i = 0; i < 10; i++){
if (i == 5) break; //5に達したら処理を抜ける
Debug.Log(value); //5で処理が中断されるため0~4までが出力される
}
for文は処理を任意の回数繰り返す際に使用する。
途中で処理を抜けたい場合は「break;」の記述をする。
③ foreach
foreach
var values = new int[] {1,10,100,1000};
foreach (var value in values) {
Debug.Log(value); //1,10,100,1000が順に出力される
}
foreachは配列や、List内の要素を順に読み取りその数だけ処理を繰り返します。
④ while
while
var value = 0
while(value < 90) { //数値が90未満であれば処理を繰り返す
value = Random.Range(0,100); //0~99のランダムな値を生成する
Debug.Log(value);
}
whileは条件が真の間処理を繰り返す。
上記の例では91~99が生成された場合に処理が終わる。
⑤ switch
switch
var valuee = 1; //値を変えるとログ出力も変わる
switch(valuee)
{
case 1:
Debug.Log("おはよう");
break;
case 2:
Debug.Log("こんにちは");
break;
case 3:
Debug.Log("こんばんは");
break;
case 4:
Debug.Log("おやすみなさい");
break;
}
switchでは渡された値に応じて条件が分岐する。
あたいの種類が決まっている列挙型(Enum)と一緒に使うことが多い