[Unityで学ぶC#] 8 switch


switch文とは

複数の選択肢から1つを選ぶときに使います.


例: 敵の状態によって行動を選択

  • 自由に移動
  • 追いかける
  • 攻撃する

という3つの状態を持つ敵がいたとします.


例: 敵の状態によって行動を選択

  • 自由に移動 => 0
  • 追いかける => 1
  • 攻撃する => 2

まずはこれらに番号付けします.


例: 敵の状態によって行動を選択

番号は整数なので,int型の変数で表現することができます.

int state = 0; // 状態0 自由に移動

state // 状態


サンプル

switch文を使って書くとこうかけます. 
長いので,書き方を説明します.


1. 状態を宣言

public class Example8 : MonoBehaviour {

    public int state = 0;

    void Start () {

    }
}


2. switch文1

public class Example8 : MonoBehaviour {

    public int state = 0;

    void Start () {
        switch (state) {
        default:
            break;
        }
    }
}

  1. まずswi くらいで,予測変換でswitchが出るのでEnterを押す.
  2. tabキーを押すと自動で書いてくれる
  3. stateと入力

3. switch文2

public class Example8 : MonoBehaviour {

    public int state = 0;

    void Start () {
        switch (state) {
        case 0:
            Debug.Log ("自由に移動する");
            break;
        default:
            break;
        }
    }
}

case 0: と入力することで, stateが0だったときの処理を記述することができる.
break;をつけることを忘れずに

caseの右端はセミコロン;ではなく:コロンなので注意しましょう.


4. switch文3

あとはcaseを増やすだけ


実行

Stateによって行動が変わるようになりました.


まとめ

switch(変数)
{
  case 1:
    いくつかの文1 // 変数の値 == 値1 のとき実行される
    break;
  case 2:
    いくつかの文2 // 変数の値 == 値2 のとき実行される
    break;
      
      
      
  default:
    いくつかの文 // 変数の値がどの値とも異なるとき実行される
    break;
}

参考
http://ufcpp.net/study/csharp/st_branch.html#switch


おわり