Select Case 制御文 [VB]

Visual Basic 文法[2015 2013 2012]

条件多分岐処理

Select Caseステートメントを使うと、複数の条件判定を、スマートにプログラミングできます。

複数のCase句の条件式を満たす時は、最初に条件式を満たしたCase句だけが実行されます。最後のCase Else 句を省略すると、すべてのCase句の条件式を満たさなかった場合には、何も実行されません。

  Select Case 条件判定式1 Then
      ' 条件1が成立した場合の処理
      ..........
      .......
      ..........
  Case 条件判定式2
      ' 条件判定2が成立した場合の処理
      .......... 
      .....
      ........
  case 条件判定式3
      ' 条件判定3が成立した場合の処理
      ..........
      .......
      ..........
  Case Else    ' 省略可能
      ' 上の条件式すべてを満たさなかった場合
      .........
      ......
      ........
  End Select

いろいろな条件判定式が書ける

Case 句の便利なのは、If ... Then ... ElseIf ... End Ifより幅広い条件判定式が書けることです。よく使うふたつ例を挙げておきます。

条件式が多かったり、複雑だとエラー(バグ)の原因になります。よく整理して、すっきりした条件式を書くようにしてください。

  ' 値の範囲指定ができる
  Case 120 To 200    
 
  ' 複数の条件が指定できる
  Case 1 To 10, 20, 30, 40, Is >= 100

Select Case サンプルプログラム

Select Case 句を使って、キーボードから年齢を入力すると、年齢に応じたメーッセージを表示するプログラムを作成します。

ソースリストの枠内をクリックすると全選択できます。

Module Module1

  Sub Main()
      ' 変数の宣言
      Dim inStr As String
      Dim inNum As Integer
      Dim msg As String
      ' キーボードから入力
      Console.WriteLine("年齢を入力してください")
      inStr = Console.ReadLine()
      ' 文字列を整数に変換
      inNum = Integer.Parse(inStr)
      ' 年齢を判定して処理を振分
      Select Case inNum
          Case Is < 0, Is >= 150
             ' メッセージを作成
             msg = "年齢に誤りがあります"
          Case 0 To 19
             msg = "まだ選挙権はありません"
          Case 20
             msg = "大人の仲間入りです"
          Case 30, 40, 50
             msg = inStr & "歳です。飲みすぎ注意"
             Case 21 To 59
             msg = "運動していますか"
          Case Else
             msg = "健康に気をつけましょう"
      End Select
      ' 結果を表示
      Console.WriteLine(msg)
  End Sub

End Module
[広告]