目次
概要
ここでは、switch 文について学習します。switch 文は以下のような構文をとります。
switch( 変数 )
{
case 値1:
// 処理1
break;
case 値2:
// 処理2
break;
case 値3:
// 処理3
break;
default:
// 処理4
break;
}
switch 文の処理の流れは下図のようになります。②で、どのプログラムが実行されるか振り分けられます。変数の値を満たす case が実行されます。いずれの条件も満たさなかった場合、default の中のプログラムが実行されます。またいずれの場合も、break 文を末尾に書く必要があります。
手順
STEP1:C# プログラム(ファイル)を追加する
こちらの記事を参考にして、コンソールアプリ(プロジェクト名:Lesson4)に C# プログラム(ファイル名:Lesson4_2)を追加します。
STEP2:プログラムを記述する
Lesson4_2.cs のプログラムを下記のように変更します。
namespace Lesson4
{
public static class Lesson4_2
{
public static void Text1()
{
int saikoro = 3;
switch(saikoro)
{
case 1:
Console.WriteLine("サイコロの目は 1 です。");
break;
case 2:
Console.WriteLine("サイコロの目は 2 です。");
break;
case 3:
Console.WriteLine("サイコロの目は 3 です。");
break;
default:
Console.WriteLine("サイコロの目は 1, 2, 3 以外です。");
break;
}
}
}
}
Program.cs のファイルの中身を下記に置き換えます。
namespace Lesson4
{
public class Program
{
public static void Main(string[] args)
{
/*
Lesson4_1.Text1();
Lesson4_1.Text2();
*/
Lesson4_2.Text1();
}
}
}
STEP3:動作を確認する
switch 文の動作を確認できたでしょうか。分岐が3つ以上の場合(上記のサイコロの目のプログラムの分岐は4)は、switch 文の方が実行速度が速い可能性が高く、またプログラムも見やすいと思います。if 文と switch 文を上手に使い分けてみてください。
課題
課題① – 1:数字を押すとプレイヤーの色が変わる
「PlayerController.cs」ファイルの 59行目付近の「Update」メソッドを編集します。赤枠のプログラムをコーディングしてください。キーボードの「1」が入力されたら「緑色」、「2」が入力されたら「赤色」、「3」が入力されたら「黒色」に、プレイヤーの色を変えたいと思います。
if (Input.anyKeyDown)
{
string keyStr = Input.inputString; // 入力されたキーの名前を取得
switch(keyStr)
{
case "1":
spriteRenderer.material.color = Color.green;
break;
case "2":
spriteRenderer.material.color = Color.red;
break;
case "3":
spriteRenderer.material.color = Color.black;
break;
}
}
コーディングができたら、Unity でゲームを実行してみてください。キーボードの数字 1~3 を押すとプレイヤーの色が変わりましたか?
このように switch 文では文字を比較して処理を振り分けることができます。とても便利ですよね。
次に進む
次は、else if 文を使った多分岐について学びます。