プログラムにおいて、複数の条件に基づいて異なる処理を行うために条件分岐が使用されます。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
文を活用して、より効率的で読みやすいコードを作成しましょう。