zukucode
主にWEB関連の情報を技術メモとして発信しています。

VB.NET Select Caseの基本的な使い方

Select Case文の基本的な使い方を紹介します。

VB.NET If,Else,ElseIf文の基本的な使い方If文の基本的な使い方について説明しましたが、ElseIfの数が増えてくると、可読性や保守性が悪くなってしまいます。

例えば以下のような分岐処理で、比較対象をaではなくa + 1bなどに条件を変更したい場合、ElseIfの箇所をすべて修正する必要があります。

Dim a As Integer = 2
If a = 1 Then
    Console.WriteLine("aは1です")
ElseIf a = 2 Then
    Console.WriteLine("aは2です")
ElseIf a = 3 Then
    Console.WriteLine("aは3です")
ElseIf a = 4 Then
    Console.WriteLine("aは4です")
End If

ElseIfの数が多いときはSelect Case文を使用することが多いです。

上記の処理をSelect Caseに置き換えると以下のようになります。

aを基準に各Caseの値と比較を行っていきます。

Dim a As Integer = 2
Select Case a
    Case 1
        Console.WriteLine("aは1です")
    Case 2
        Console.WriteLine("aは2です")
    Case 3
        Console.WriteLine("aは3です")
    Case 4
        Console.WriteLine("aは4です")
End Select

'実行結果
'aは2です

Select Case 値ACase 値Bの値がイコールの場合に以降の処理が実行されます。

C言語やJavaScriptなどではswitch文に相当する構文です。

複数のCaseに該当する場合でも、最初に該当したCase処理のみ実行され、以降は無視されます。

Dim a As Integer = 2
Select Case a
    Case 1
        Console.WriteLine("aは1です")
    Case 2
        Console.WriteLine("aは2です")
    Case 2
        '実行されない
        Console.WriteLine("aは2です!!")
    Case 4
        Console.WriteLine("aは4です")
End Select

'実行結果
'aは2です

JavaScriptではCase処理の最後にbreakコマンドを追加しなければ次のCase処理も実行されてしまいますが、VB.NETSelect Case文ではbreakは不要です。

途中で処理を抜ける

使用する頻度はあまりありませんが、Case処理の中で、Select Case文を抜けるにはExit Selectを実行します。

Dim a As Integer = 2
Select Case a
    Case 1
        Console.WriteLine("aは1です")
    Case 2
        Console.WriteLine("aは2です")
        End Select 'Select Case処理を抜ける
        Console.WriteLine("aは2です!!")
    Case 3
        Console.WriteLine("aは3です")
End Select

'実行結果
'aは2です

関連記事