1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Unityで学ぶC#] 8 switch

Last updated at Posted at 2017-03-04
1 / 13

switch文とは

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


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

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

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


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

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

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


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

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

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

state // 状態


サンプル

switch文を使って書くとこうかけます. 
長いので,書き方を説明します.
スクリーンショット 2017-03-04 21.53.21.png


1. 状態を宣言

public class Example8 : MonoBehaviour {

	public int state = 0;

	void Start () {
		
	}
}

state.gif


2. switch文1

public class Example8 : MonoBehaviour {

	public int state = 0;

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

switch2.gif

  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;
		}
	}
}

switch3.gif

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

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


4. switch文3

あとはcaseを増やすだけ

スクリーンショット 2017-03-04 21.53.21.png

実行

Stateによって行動が変わるようになりました.
スクリーンショット 2017-03-04 22.12.10.png

スクリーンショット 2017-03-04 22.12.04.png

まとめ

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

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


おわり

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?