c言語

【C言語】”switch文”の具体例と解説

person using macbook pro on white table

具体例

  • int型の変数nを宣言
  • 入力を読み取ってnに代入
  • switch文を使い、nの値に応じて条件分岐
  • 「3」を入力した場合、出力はこうなる

解説

制御式・事例式

  • 制御式(n)が事例式(0や1)と等しい時に、文を実行

制御式は、ここでは「n」ですが、「n-2」や「n*2」のように式を入れることができます。

事例式は、ここでは、「0」,「1」などの整数ですが、「a」などの文字を入れることもできます。ただし、事例式は定数でないといけないので変数を入れることはできません。

caseラベル・defaultラベル

  • caseラベル … 「case 事例式:」
  • defaultラベル…「default:」

caseラベルとdefaultラベルは両方とも:(コロン)」で終わっているというところがポイントです。

break文

  • break文を使ってswitch文を抜ける

defaultに関しては、break文がなくても問題ないですが、他の場所では、break文を忘れるとswitch文を抜けないので、次の文がそのまま実行されておかしなことになってしまいます。しかし、これを逆に利用した例があります。

  • 入力が「a」,「A」のどちらでもprintf文が実行されて、switch文を抜けます。

ポイントは、break文が実行されてswitch文を抜けるということです。工夫の仕方によってさまざまな処理ができますが、break文は忘れないように気をつけてください。