If 条件式1 Then … Elseif 条件式2 … [VB]

VB2012-2019

3分岐以上の処理

If 条件式 Then … ElseIf … ElseIf … End If を使うと、条件式をいくつも書くことができるので、条件式の判定の数だけ、分岐処理のプログラミムを作成できます。

IfThenElseIf分岐

しかし、分岐処理を多くすると、判定条件が複雑になり、処理漏れや、境界判定などでバグが出やすくなります。プログラミングする前に、判定条件を整理して、効率的な分岐処理になるように心がけてください。

Else 句でその他の処理

ElseIf を使えば、3つ以上の条件式を判定し、分岐処理を実行することができます。

最後に書く Else 句は、それまでのいずれの条件式を満たさなかった時だけ実行されます。

Else 句を書かないと、条件式が成立しなかった時には、何も実行されません。

  If 条件式1 Then
    ' 条件式1が成立した場合の処理
    ..........
    ............
    ..........
  ElseIf 条件式2
    ' 条件式2が成立した場合の処理
    ..........
    .......
  ElseIf 条件式3
    ' 条件式3が成立した場合の処理
    ..........
    ..........
  Else      ' Else句は省略可能
    ' いずれの条件も成立しなかった場合
    ..........
    .............
    ........
  End If

サンプルプログラム

If Then ElseIf と比較演算子を使ったサンプルプログラムを作成します。

キーボードから入力した整数値が、正の整数なら「正の整数が入力されました」と表示、入力値が 0 なら「ゼロが入力されました」と表示、負の整数なら「負の整数が入力されました」と表示するプログラムを作成します。

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

Module Module1

    Sub Main()
        ' 変数の宣言
        Dim inStr As String = ""
        Dim inNum As Integer = 0
        Dim msg As String = ""

        ' キーボードから入力
        Console.WriteLine("整数を入力してください")
        inStr = Console.ReadLine()
        ' 文字列を整数に変換
        inNum = Integer.Parse(inStr)

        ' 入力値を判定して処理を振分
        If inNum > 0 Then
           ' 正の整数用のメッセージを作成
            msg = "正の整数が入力されました"
        ElseIf inNum = 0 Then
           ' ゼロ用のメッセージを作成
            msg = "ゼロが入力されました"
        Else
           ' 負の整数用のメッセージを作成
            msg = "負の整数が入力されました"
        End If

        ' 結果を表示
        Console.WriteLine(msg)
    End Sub

End Module