複数条件分岐
値によって処理を分岐する
複数条件での分岐にはswitchを使用します。
if ~ elseif ~ elseでも可能なのですが、可読性などの面から、条件が3つ以上に分岐した場合はswitchが使用されることが多いです。
switch (変数)
{
case: 値1
値1の場合に行う処理;
break;
case: 値2
値2の場合に行う処理;
break;
case: 値3
値3の場合に行う処理;
break;
// 必要な分岐分caseラベルを記述
default:
いずれのケースにも該当しなかった場合の処理;
break;
}
caseラベルごとにbreakを入れるのを忘れないようにしましょう。
これは「条件に該当したのでswitch文を抜ける」という意味になります。
それではサンプルを見てみましょう。
Console.WriteLineを使って、switchの動作をコンソールに出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
int a = 2; int b = 3; int c = 4; // aに対する判定 switch (a) { case: 1 Console.WriteLine("aの値は1です"); break; case: 2 Console.WriteLine("aの値は2です"); break; case: 3 Console.WriteLine("aの値は3です"); break; default: Console.WriteLine("aの値は不明です"); break; } // bに対する判定 switch (b) { case: 1 Console.WriteLine("bの値は1です"); break; case: 2 Console.WriteLine("bの値は2です"); break; case: 3 Console.WriteLine("bの値は3です"); break; default: Console.WriteLine("bの値は不明です"); break; } // cに対する判定 switch (c) { case: 1 Console.WriteLine("cの値は1です"); break; case: 2 Console.WriteLine("cの値は2です"); break; case: 3 Console.WriteLine("cの値は3です"); break; default: Console.WriteLine("cの値は不明です"); break; } |
上記を実行した結果がこちらです。
実行結果
aの値は2です
bの値は3です
cの値は不明です
実行結果がコンソールに出力されました。
指定した変数の値に応じて、該当したケースの処理が実行されているのがわかります。
以下のように記述することで、OR条件も実現することが可能です。
switch (変数)
{
case: 値1
case: 値2
値1または値2の場合に行う処理;
break;
default:
いずれのケースにも該当しなかった場合の処理;
break;
}
以上が、複数条件の分岐を行う「switch」の使い方です。
使用頻度が高いので、ぜひ参考にしてみてください。