今回は、VB.NETのSelect Caseで複数条件分岐を実装する方法についてご紹介します。
Select Caseとは
VB.NETのSelect Caseは、変数や式の値に応じて複数の条件分岐を簡潔に記述できる構文です。
たとえば数値の場合、100のとき、90~99のときなど、複数の条件をまとめて一度に分岐できます。
また、文字列の場合も同様に、特定の文字列や複数の文字列を対象として条件を振り分けることが可能です。
条件分岐が多い場合に、If~ElseIfステートメントを並べるよりも読みやすいコードを実装できる点が大きなメリットです。
Select Caseの基本構文と使い方
構文は次のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim score As Integer = 85 ' 判定したい数値 Select Case score Case 100 Console.WriteLine("満点です!") Case 90 To 99 Console.WriteLine("素晴らしい!") Case 80 To 89 Console.WriteLine("良い点数です。") Case Else Console.WriteLine("もっと頑張りましょう。") End Select |
変数や式をSelect Caseの後に書き、Caseで条件を指定します。
この例では、Case 90 To 99のように範囲指定をすることで、90以上99以下の値が入ったときに該当します。
Case Elseは、上記のどの条件にも該当しなかった場合に実行される処理です。
それでは実行結果を確認してみます。
素晴らしい!
Select Caseの実践例
文字列や複数の値を一括で扱うケースを見てみます。
1 2 3 4 5 6 7 8 9 10 |
Dim day As String = "土曜日" ' 判定したい文字列 Select Case day Case "土曜日", "日曜日" Console.WriteLine("今日は休日です。") Case "月曜日", "火曜日", "水曜日", "木曜日", "金曜日" Console.WriteLine("今日は平日です。") Case Else Console.WriteLine("入力エラー") End Select |
このコードでは、休日と平日をまとめて分岐しており、いずれにも該当しない場合に入力エラーを表示します。
実行結果は次のようになります。
今日は休日です。
また、次のように数値に対して比較演算子を用いた分岐も可能です。
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim temperature As Integer = 25 ' 判定したい数値 Select Case temperature Case Is < 0 Console.WriteLine("氷点下です。") Case 0 To 15 Console.WriteLine("肌寒いです。") Case Is > 30 Console.WriteLine("暑すぎます。") Case Else Console.WriteLine("快適な気温です。") End Select |
快適な気温です。
Select Caseを活用する際の注意点
Case Elseの活用
すべての条件に該当しない値が入力された場合に備えて、Case Elseを設定することをおすすめします。
データ型の一致
比較対象となる式や値の型が一致していないと、正常に条件分岐できない場合があります。
範囲指定の注意
範囲指定(例:Case 90 To 99)は連続する値に対してのみ有効です。
もし不連続な条件を指定したい場合には、「Case 90, 92」などのようにカンマ区切りで複数の値を指定するとよいでしょう。
可読性の維持
条件が多くなる場合、どの条件に該当するか見分けにくくなることがあります。
コメントを挟む、変数名を分かりやすくするなどの工夫でコードの可読性を確保しましょう。
複雑な条件分岐
Select Caseで書ききれないほど条件が複雑になる場合には、If~ElseIfを検討するのも手段のひとつです。
まとめ
Select Caseはコードを読みやすく保ちながら、複数の条件分岐を整理するのに有効です。
数値・文字列問わず簡潔に記述できるため、状況に応じて柔軟に活用できます。
Case Elseなどの活用で、異常系や予期せぬ入力に対しても安全に対処できる点が魅力です。