VB.NET Select Case文の使い方

条件分岐のIf文では、xxxの場合は○○○の処理、
zzzの場合は△△△の処理をする。
といったプログラムを作りましたが、

今回は、条件分岐が非常に多い時に重宝する
Select Case文を説明します。

1~12と数字を入れると、1月から12月までのそれぞれの月名を
英語で表示するプログラムを作る事にします。

Sub Main()
    Dim a As Integer
    Dim str As String

    Console.WriteLine("月を入力して下さい。(1~12月)")
    str = Console.ReadLine()
    a = CInt(str)

    Select Case a 
        Case 1
            Console.WriteLine("January")
        Case 2
            Console.WriteLine("February")
        Case 3
            Console.WriteLine("March")
        Case 4
            Console.WriteLine("April")
        Case 5
            Console.WriteLine("May")
        Case 6
            Console.WriteLine("June")
        Case 7
            Console.WriteLine("July")
        Case 8
            Console.WriteLine("August")
        Case 9
            Console.WriteLine("September")
        Case 10
            Console.WriteLine("October")
        Case 11
            Console.WriteLine("November")
        Case 12
            Console.WriteLine("December")
        Case Else
            Console.WriteLine("エラー")
    End Select
End Sub

プログラムを実行すると以下のようになります。

月を入力して下さい。(1~12月)
1
January
月を入力して下さい。(1~12月)
13
エラー

結果は、上記のように表示されます。

まず、新しい記述が出てきました。

Select Case a

Select Caseの後には、比較対象とする変数などを記述します。
この場合は、変数aを対象とする。という意味になります。

次のCase文は、「変数aが1の場合」と言う意味です。
そして、変数aが1の場合、すぐ下の文が実行されます。

Case Elseは、上で書いたCase文の
どれにも当てはまらなかった場合。
と言う意味です。

この場合、1~12の数値を対象としてるので、
それ以外の数値の場合は、
“エラー”と表示するようにしました。

このプログラムをIf文で書き換えるとしたら、
Else If ~~~と言う記述が多くなってしまい、
見た目的にも、分かりやすさ的にもSelect Case文に軍配が上がります。

If文とSelect Case文のどちらを使うかは、その時の状況に応じて
適切に使い分ける必要があります。


簡単なswitch文の使い方でした。