次の方法で共有


方法: 式を複数の値と比較する (Visual Basic)

同じ式を複数の値と比較する場合は、If...Then...Else ステートメント (Visual Basic) 構造の代わりに Select...Case ステートメント (Visual Basic) 構造を使用できます。 If ステートメントと ElseIf ステートメントは、各ステートメントで異なる式を評価できるのに対し、Select ステートメントは、1 つの式を 1 回だけ評価し、その式をすべての比較に使用します。

1 つの式を 1 回だけ評価し、複数の値と比較するには

  • Select...Case 構造を使用して、式および複数の値を指定します。 各 Case ステートメントには、1 つまたは複数の値、値の範囲、または値と比較演算子の組み合わせを指定できます。 Case Else ステートメントを使用すると、それ以前の Case ステートメントで検証されなかったすべての値を処理できます。 このプロセスを説明する例を次に示します。

    Function bonus(ByVal performance As Integer, 
                   ByVal salary As Decimal) As Decimal
        Select performance
            Case 1
                Return salary * 0.1
            Case 2, 3
                Return salary * 0.09
            Case 5 To 7
                Return salary * 0.07
            Case 4, 8 To 10
                Return salary * 0.05
            Case Is < 15
                Return 100
            Case Else
                Return 0
       End Select
    End Function
    

    Visual Basic は、式の値と Case ステートメントの値とを、Select...Case 構造で指定されている順序で比較します。 値が一致するか、Case Else ステートメントが実行されると、対応するステートメント ブロックが実行されます。 いずれの場合も、その後、End Select ステートメントに続くステートメントに分岐します。

    Case ステートメントは、任意の数指定できます。また、Case ステートメントがあるかどうかにかかわらず、Case Else ステートメントを 1 つ指定でき、省くこともできます。

Select...Case 構造のコード例は、IntelliSense コード スニペットにもあります。 コード スニペット ピッカーでは、これは [Visual Basic Language] にあります。 詳細については、「方法 : IntelliSense コード スニペットを挿入する」を参照してください。

参照

処理手順

方法: 制御構造から制御を移す (Visual Basic)

方法: 1 つ以上の条件に基づいてステートメントを実行する (Visual Basic)

方法: エラー発生時に制御を継続する (Visual Basic)

概念

条件判断構造 (Visual Basic)

ループ構造 (Visual Basic)

その他の制御構造 (Visual Basic)

入れ子になった制御構造 (Visual Basic)

その他の技術情報

Visual Basic における制御フロー