switch、break
メニューを表示するにはスワイプしてください
switch文の使用方法
自動販売機でソーダを購入する場面を想像してください。希望する飲み物を選択すると、自動販売機のコンピュータ内部で user_input 変数があらかじめ定義された複数の値のいずれかを取ります。これらの各選択肢は case と呼ばれ、ここで switch 文が活用されます。
switch 文は、if-else 文の別バージョンと考えることができます。事前に定義した特定の値に応じて動作します。
switch 文の構造は次のようになります。
main.c
1234567891011121314151617switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }
自動販売機の例を考える。異なる種類のチップスを選択するための3つのボタンがあるとする。
- チーズ味チップス
- ベーコン味チップス
- チリ味チップス
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
テストされた式がいずれのケースにも一致しない場合、defaultケースが実行される。defaultケースが指定されていない場合、プログラムはそのまま処理を続行する。
注意
switch文でテストされる式は、整数型またはchar型のみ使用可能。ケースとして文字列や非整数型データ型は使用不可。
Main.c
12345678910111213141516171819202122232425#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
breakの役割
breakコマンドは現在のブロックの実行を停止し、次のコードセグメントへ進行。該当するcaseが完了した時点で、そのブロックを抜けてプログラムを継続。
breakコマンドがない場合、switch文は連続して実行され、意図しない結果になる可能性あり。
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
break コマンドがない場合、プログラムは一致する case を見つけた直後から実行を開始し、break に到達するか switch の終わりに達するまで継続する。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 4. 章 4