VB.NETのSelect Caseの使い方(switch文)

VB.NET VB.NET

VB.NETのSelect Caseの使い方について書いています。
VB.NETにはswitch文がなく、かわりにSelect Case文を使います。

Select Caseの使い方

Select Case文を使うことで、複数の条件分岐をすることができます。
If文でも同様に処理することが可能ですが、Select Case文を使うことで、すっきりと処理を書くことができます。

例えば、下記のように使うことができます。

Dim fruit As String = "grape"

Select Case fruit
Case "apple"
    Console.WriteLine("fruitはりんごです")
Case "banana"
    Console.WriteLine("fruitはバナナです")
Case "grape"
    Console.WriteLine("fruitはぶどうです")
Case "melon"
    Console.WriteLine("fruitはメロンです")
End Select

最初にfruit変数に「grape」という文字列を格納しています。
その次の処理で、Select Caseを使っています。

Select Case [変数]のように評価したい変数をSelect Caseの後に書きます。
その後のCaseに書いた値と一致するか確認し、一致した場合には、その配下の処理を行います。
Caseをいくつか書いたら、最後にEnd Selectで閉じます。

今回のコードでは、fruit変数の値によって出力されるメッセージが変化します。
fruit変数が”apple”なら、「fruitはりんごです」が出力され、”banana”なら「fruitはバナナです」が出力されます。
同様に”grape”と”melon”に対してもメッセージが出力されます。

Select CaseのElseについて

もし条件に合致するCaseが存在しない場合、Case Elseを使って処理を記述することができます。
これは他の言語のswitch文でいうdefaultのような役割を果たします。

例えば、上記のコードに「fruitはその他の果物です」というメッセージを追加するには、以下のように書きます。

Dim fruit As String = "orange"

Select Case fruit
Case "apple"
    Console.WriteLine("fruitはりんごです")
Case "banana"
    Console.WriteLine("fruitはバナナです")
Case "grape"
    Console.WriteLine("fruitはぶどうです")
Case "melon"
    Console.WriteLine("fruitはメロンです")
Case Else
    Console.WriteLine("fruitはその他の果物です")
End Select

このコードでは、最初にfruit変数に対して”orange”という値が格納されています。
その次の処理で、Select Caseで評価して、”orange”に対応するCaseは存在しないため、Case Elseの処理が実行されます。

結果として「fruitはその他の果物です」というメッセージが出力されます。
Case Elseを書いておくことで、予期しない値が入った場合でも適切な処理を行うことができます。

Select Caseを使って範囲で判定する

Select Case文は値だけでなく、範囲を指定して条件分岐することも可能です。
これにより、特定の範囲にある値に対して特定の処理を行うことができます。

例えば、次のようなコードを考えてみましょう。

Dim score As Integer = 85

Select Case score
Case 0 To 59
    Console.WriteLine("不合格")
Case 60 To 79
    Console.WriteLine("合格")
Case 80 To 100
    Console.WriteLine("優秀")
Case Else
    Console.WriteLine("無効なスコア")
End Select

このコードでは、score変数の値に応じて異なるメッセージを出力します。
値が0から59までの範囲であれば”不合格”、60から79までであれば”合格”、80から100であれば”優秀”と出力します。

範囲外の値が入力された場合は”無効なスコア”と出力します。
これにより、範囲に基づいた条件分岐が可能になります。

今回はscore変数の値が「85」なので、「優秀」が出力されることになります。
このように、Select Case文を使うことで、値や範囲による複雑な条件分岐を一元的に管理することができ、コードの可読性を高めることができます。

おわりに

VB.NETのSelect Caseは、条件分岐を簡潔にまとめることができました。
値による分岐だけでなく、範囲による分岐も可能でした。

デフォルトの処理を定義したい時には、Case Elseを使って予期しない値に対応できました。
Select Caseを使うことで、コードの可読性と保守性が向上するかと思います。

コメント

タイトルとURLをコピーしました