複数の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」文では複数の定数に対して同じ処理を実行させることが可能です。

サンプルプログラム

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

test8-1.c

#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 )