switch caseを利用した条件分岐処理 - C#

C#でswitch case文を使った条件分岐処理を紹介します。

書式

switch(判定する変数)
{
  case 値1:
    ...処理;
    break;
  case 値2:
    ...処理;
    break;
  ...
  default:
    ...処理;
    break;
}
「判定する変数」の値をcase文で判定し、条件と一致する場合はcaseに続く処理を実行します。どの条件にも当てはまらなかった場合は、default:ブロック内の処理を実行します。C#ではcaseブロックの中にbreak,returnといったswitch文から抜ける記述が必須です(C,C++はなくても良い)。break,returnがない場合はコンパイルエラーとなります。

例1

コード

private void button6_Click(object sender, EventArgs e)
{
  int a = 2;
  switch (a) {
    case 0:
      textBox1.Text = "0です";
      break;
    case 1:
      textBox1.Text = "1です";
      break;
    case 2:
      textBox1.Text = "2です";
      break;
    case 3:
      textBox1.Text = "3です";
      break;
    default:
      textBox1.Text = "それ以外です";
      break;
  }
}

実行結果 (textBox1)

2です

例2: 文字列での判定

C#ではCaseにintなどの整数型や順序型以外の型も指定できます。以下は文字列によるcaseの分岐例です。

コード

private void button7_Click(object sender, EventArgs e)
{
  string str = "Penguin";
  switch (str) {
    case "Whale":
      textBox1.Text = "クジラです";
      break;
    case "Duck":
      textBox1.Text = "アヒルです";
      break;
    case "Penguin":
      textBox1.Text = "ペンギンです";
      break;
    default:
      textBox1.Text = "それ以外です";
      break;
  }
}

実行結果(textBox1)

ペンギンです
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2011-02-05
iPentec all rights reserverd.