Unity : C#基礎④ 条件式 if文・switch文
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 < 100MP >= 100
対してswitchはプレイヤーネームなど固定の値を判定するのが向いている
playerMain = "主人公"enemyBoss = "魔王"
コメント
0 件のコメント :
コメントを投稿