はじめに
C 言語では、複数の選択肢がある場合にプログラムの実行フローを制御するために switch case 文が使用されます。これは C 言語の決定的な文の 1 つです。switch case 文は式を評価し、それを複数の値と照合して対応するコードブロックを実行します。
この実験では、例を使って C 言語で switch case 文をどのように使用するか学びます。
基本的な switch case 構文
#include <stdio.h>
int main() {
int num = 2;
switch(num) {
case 1:
printf("Number is 1");
break;
case 2:
printf("Number is 2");
break;
case 3:
printf("Number is 3");
break;
default:
printf("Number is not 1, 2, or 3");
}
return 0;
}
このプログラムは値が 2 の整数 num を宣言し、switch case 文を使ってその値がどのケースラベルと一致するかをチェックします。num の値は 2 なので、このコードの出力は Number is 2 になります。
break 文を使わない場合
#include <stdio.h>
int main() {
int num = 2;
switch(num) {
case 1:
printf("Number is 1\n");
case 2:
printf("Number is 2\n");
case 3:
printf("Number is 3\n");
default:
printf("Number is not 1, 2, or 3\n");
}
return 0;
}
このプログラムは値が 2 の整数 num を宣言し、break 文を使用せずに switch case 文を使っています。break 文がないため、次の break 文または switch case 文の終わりまで、その後のすべての文が実行されます。このプログラムの出力は以下の通りになります。
Number is 2
Number is 3
Number is not 1, 2, or 3
char 型データ型を使用する
#include <stdio.h>
int main() {
char grade = 'B';
switch(grade) {
case 'A':
printf("Excellent");
break;
case 'B':
printf("Good");
break;
case 'C':
printf("Average");
break;
default:
printf("Invalid grade");
}
return 0;
}
このプログラムは値が 'B' の文字型変数 grade を宣言します。grade の値がどのケースラベルと一致するかをチェックするために switch case 文を使用しています。このコードの出力は Good になります。
ネストされた switch case
#include <stdio.h>
int main() {
int num1 = 2, num2 = 3;
switch(num1) {
case 1:
switch(num2) {
case 1:
printf("Number is 1");
break;
case 2:
printf("Number is 2");
break;
default:
printf("Number is not 1 or 2");
break;
}
break;
case 2:
switch(num2) {
case 3:
printf("Number is 3");
break;
case 4:
printf("Number is 4");
break;
default:
printf("Number is not 3 or 4");
break;
}
break;
default:
printf("Invalid input");
}
return 0;
}
このプログラムはそれぞれ値が 2 と 3 の 2 つの整数型変数 num1 と num2 を宣言します。その後、ネストされた switch case 文を使用して num1 と num2 の値がどのケースラベルと一致するかをチェックします。このコードの出力は Number is 3 になります。
まとめ
この実験では、C 言語における switch case 文の使い方を例を交えて学びました。異なるデータ型で switch case 文を使う方法、break 文を使わずに使う方法、および switch case 文をネストする方法を学びました。



