複数の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 )