複数の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」の名前で保存します。まずコンパイルを行います。
コンパイルが終わりましたら「test8-1」と入力して実行します。
( Written by Tatsuo Ikura )
CppDrive