switch文で複数のcaseで同じ処理を実行する

switch 文では case はどこから処理を実行するのかを表す目印ですが、複数の case を並べて記述することで、複数の値のいずれかに一致したときに同じ処理を実行させることができます。ここでは C 言語の switch 文で複数の case に対して同じ処理を実行させる方法について解説します。

(Last modified: )

複数のcaseで同じ処理を実行する

switch 文における case はどこから実行するかの開始位置を表すものですので、複数の case を記述して同じ処理を実行することが可能です。

switch(式){
  case 定数1:
  case 定数2:
  case 定数3:
    式が定数1 or 定数2 or 定数3の時に実行する処理1;
    break;
  case 定数4:
  case 定数5:
    式が定数4 or 定数5の時に実行する処理1;
    break;

  default:
    どの定数にも一致しない時に実行する処理1;
    どの定数にも一致しない時に実行する処理2;
}

上記の場合は「式」が定数1の時に「case 定数1:」の箇所から処理が開始されます。その後、下に向かって処理が行われていき「break」文か「switch」文の最後に到達するまで処理が実行されます。結果的に「式が定数1 or 定数2 or 定数3の時に実行する処理1;」が実行されることになります。

「式」が定数2の時は「case 定数3:」の箇所からとなりますが結果的には定数1の時と同じように「式が定数1 or 定数2 or 定数3の時に実行する処理1;」が実行されることになります。

このように switch 文では複数の定数に対して同じ処理を実行させることが可能です。

サンプルコード

では簡単なサンプルプログラムを作成して試してみます。

#include <stdio.h>

int main(void){
  int num;

  num = 2;
  printf("num = %d\n",num);

  switch(num){
    case 1:
    case 3:
    case 5:
    case 7:
    case 9:
      printf("数値は偶数です\n");
      break;
    case 2:
    case 4:
    case 6:
    case 8:
      printf("数値は偶数です\n");
      break;
  }

  num = 6;
  printf("num = %d\n",num);

  switch(num){
    case 1:
    case 3:
    case 5:
    case 7:
    case 9:
      printf("数値は偶数です\n");
      break;
    case 2:
    case 4:
    case 6:
    case 8:
      printf("数値は偶数です\n");
      break;
  }

  return 0;
}

上記を「test8-1.c」の名前で保存します。まずコンパイルを行います。

複数のcaseで同じ処理を実行

コンパイルが終わりましたら「test8-1」と入力して実行します。

複数のcaseで同じ処理を実行

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。