VB.NET Select Caseの基本的な使い方
Select Case
文の基本的な使い方を紹介します。
VB.NET If,Else,ElseIf文の基本的な使い方でIf
文の基本的な使い方について説明しましたが、ElseIf
の数が増えてくると、可読性や保守性が悪くなってしまいます。
例えば以下のような分岐処理で、比較対象をa
ではなくa + 1
やb
などに条件を変更したい場合、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
の値と比較を行っていきます。
どのCase
にも当てはまらなかった場合はCase Else
の処理が実行されます。
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です")
Case Else
Console.WriteLine("aは1,2,3,4以外です")
End Select
'実行結果
'aは2です
Select Case 値A
とCase 値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.NET
のSelect 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です