ifとswitchとは


プログラムでは分岐や条件がたくさんある。ここでは分岐する条件式の二つ、if文とswitch文をまとめていく。真をtrue、偽をfalseと表記。条件式の演算子や、よく使う分岐条件もあるので合わせてメモしておく。

条件式で使う演算子




if文


条件式が複数の場合や満たさなかった場合など、条件によって処理が違う。
if文は以下の3つ。

if


条件式を満たした場合のみ{}内の処理を実行する。
満たしていない場合は何もしない。
int hp = 100;
        
if(hp > 80)  // hpが80より大きいとき
{
	Debug.Log("攻撃");
}

else


if文の条件を満たしてない場合はelseに進んで{}内の処理を実行する。
if文のすぐ後に追記する形で記述する。
int hp = 100;

if(hp > 80) // hpが80より大きいとき
{
	Debug.Log("攻撃");
}
else // hpが80より小さいとき
{
	Debug.Log("防御");
}

else if


最初のifを満たさないとき次のelse ifの条件式に進む。
どちらも満たさない場合最後のelseを実行する。
int hp = 100;

if(hp > 80) //hpが80より大きいとき
{
	Debug.Log("攻撃");
}
else if(hp < 30) //hpが30より小さいとき
{
	Debug.Log("回復");
}
else // それ以外、hpが80~30のとき
{
	Debug.Log("防御");
}

偶数奇数の判定式


割り算の余りから偶数と奇数を判定する条件式。
とてもよく使うので覚えておく。
int hp = 10;

if(hp%2 == 0)
{
	Debug.Log("HPは偶数");
}
else if(hp%2 == 1)
{
	Debug.Log("HPは奇数");
}

switch文


ifとよく似ているが書き方はとてもシンプル。
上から順に処理していく形。

switch文の書き方


caseの条件は複数可能。
breakで処理が終了。
どれにも当てはまらないときはdefaultを返す。
string characterType = "Enemy";

switch(characterType)
{
	case "Player":
	case "Friends":
		Debug.Log("味方だよ");
		break;
            
	case "Enemy":
		Debug.Log("敵だよ");
		break;

	default:
		Debug.Log("無関係だよ");
		break;
}

if文に置き換え


よく似ている構文ifに置き換えても表記できる。
上の条件式をifに書き換えた場合。
string characterType = "Enemy";

if (characterType == "Player" || characterType == "Friends")
{
	Debug.Log("味方だよ");
}
else if(characterType == "Enemy")
{
	Debug.Log("敵だよ");
}
else
{
	Debug.Log("無関係だよ");
}

ifとswitchの使い分け


ifは特定できない数値などの判定に使うのに向いている
HP < 100
MP >= 100

対してswitchはプレイヤーネームなど固定の値を判定するのが向いている
playerMain = "主人公"
enemyBoss = "魔王"