switch (変数) { case 値1: // 値1の時の処理 break; case 値2: // 値2の時の処理 break; default: // 上記以外の値の時の処理 break; }
switch:switch文を始めます。これに続けて括弧()内に、分岐の元となる変数を書きます。
case:変数が特定の値を持つ場合の処理を記述します。これに続けてコロン:を書き、その後に該当する値が変数に存在する場合の処理を記述します。
break:それぞれのcaseブロックの最後にはbreakを書きます。これは、そのブロックの処理が終わったらswitch文から出るためのキーワードです。メソッド自体を終了したい場合には return でも抜け出せます。
default:変数がどのcaseにも当てはまらない場合の処理を記述します。これはオプションで、必ずしも記述する必要はありません。
string menu = "ハンバーガー"; switch (menu) { case "ハンバーガー": // ハンバーガーを作る処理 break; case "フレンチフライ": // フレンチフライを作る処理 break; case "シェイク": // シェイクを作る処理 break; default: // それ以外のメニューの場合の処理 break; }
public enum CharacterState { Standing, Running, Jumping } CharacterState state = CharacterState.Running; switch (state) { case CharacterState.Standing: // 立っている時の処理 break; case CharacterState.Running: // 走っている時の処理 break; case CharacterState.Jumping: // ジャンプしている時の処理 break; default: break; }
object obj = "Hello, World!"; switch (obj) { case string s: Console.WriteLine($"It's a string with length {s.Length}"); break; case int i: Console.WriteLine($"It's an integer with value {i}"); break; default: Console.WriteLine("It's something else."); break; }
public enum CharacterState { Standing, Running, Jumping } public void PlayAnimation(CharacterState state) { switch (state) { case CharacterState.Standing: // 立っている時のアニメーションを再生 Console.WriteLine("Standing animation"); break; case CharacterState.Running: // 走っている時のアニメーションを再生 Console.WriteLine("Running animation"); break; case CharacterState.Jumping: // ジャンプしている時のアニメーションを再生 Console.WriteLine("Jumping animation"); break; default: // 予期しない状態 Console.WriteLine("Invalid state"); break; } }
public enum Size { Small, Medium, Large } public int GetSizeValue(Size size) { return size switch { Size.Small => 1, Size.Medium => 2, Size.Large => 3, _ => 0 // それ以外の値 }; }