Select Case 制御文 [VB]

Visual Basic 文法[2015 2013 2012]

条件多分岐処理

SelectCase分岐

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

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

Case 条件判定式は、いくつでも指定することができますが、数が多かったり、条件判定式が複雑だと、エラー(バグ)の原因になります。そのあたりは注意してプログラミングしてください。

Select Caseと同様な制御文に、If 条件式 Then ... ElseIf ... End If があります。

If 条件式 Then ... ElseIf ... End If

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

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

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

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

Is キーワード

次のサンプルプログラムでは、Case Is < 0, Is >= 150 のように、比較演算子と Is キーワードを使っていますが、これは、inNum の値が 0 より小さいか、150以上ならば、この Case句が実行されます。

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
[広告]と関連コンテンツ
[広告]