プログラムにおいて、複数の条件に基づいて異なる処理を行うために条件分岐が使用されます。C言語では、switch文を利用することで、特定の値に基づいた分岐処理を簡潔に実装することが可能です。以下に、switch文の使用方法と具体例を示します。
基本的なswitch文
switch文は、与えられた変数の値に基づいて異なるケースを実行します。switch文の構文は以下の通りです。
#include <stdio.h>
int main() {
int number = 2;
switch (number) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
default:
printf("Other\n");
break;
}
return 0;
}
出力:
Two
break文の重要性
switch文では、各ケースの終わりにbreak文を入れることが重要です。break文がない場合、次のケースにフォールスルー(通り抜け)してしまいます。
#include <stdio.h>
int main() {
int number = 2;
switch (number) {
case 1:
printf("One\n");
case 2:
printf("Two\n");
case 3:
printf("Three\n");
default:
printf("Other\n");
}
return 0;
}
出力:
Two\nThree\nOther
defaultケース
defaultケースは、どのケースにも一致しない場合に実行されるデフォルトの処理を定義します。
#include <stdio.h>
int main() {
int number = 5;
switch (number) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
default:
printf("Other\n");
break;
}
return 0;
}
出力:
Other
文字のswitch文
switch文は、整数型だけでなく文字型にも使用できます。
#include <stdio.h>
int main() {
char grade = 'B';
switch (grade) {
case 'A':
printf("Excellent\n");
break;
case 'B':
printf("Good\n");
break;
case 'C':
printf("Average\n");
break;
default:
printf("Invalid grade\n");
break;
}
return 0;
}
出力:
Good
複数のケースを結合
同じ処理を行う場合、複数のケースを結合して記述することができます。
#include <stdio.h>
int main() {
int day = 6;
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("Weekday\n");
break;
case 6:
case 7:
printf("Weekend\n");
break;
default:
printf("Invalid day\n");
break;
}
return 0;
}
出力:
Weekend
総合例
以下に、ここまで紹介したswitch文の知識を統合したプログラムを示します。このプログラムでは、整数型と文字型のswitch文、およびbreak文やdefaultケースの使用を含んでいます。
#include <stdio.h>
int main() {
// 整数型のswitch文
int number = 3;
printf("整数型のswitch文:\n");
switch (number) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
default:
printf("Other\n");
break;
}
// 文字型のswitch文
char grade = 'C';
printf("文字型のswitch文:\n");
switch (grade) {
case 'A':
printf("Excellent\n");
break;
case 'B':
printf("Good\n");
break;
case 'C':
printf("Average\n");
break;
default:
printf("Invalid grade\n");
break;
}
// 複数のケースを結合
int day = 2;
printf("複数のケースを結合:\n");
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("Weekday\n");
break;
case 6:
case 7:
printf("Weekend\n");
break;
default:
printf("Invalid day\n");
break;
}
return 0;
}
結論
条件分岐は、プログラムの流れを制御するための基本的な構造です。C言語のswitch文を使用することで、特定の値に基づいた分岐処理を簡潔に記述することができます。switch文を活用して、より効率的で読みやすいコードを作成しましょう。
