3分岐以上の処理
If 条件式 Then … ElseIf … ElseIf … End If を使うと、条件式をいくつも書くことができるので、条件式の判定の数だけ、分岐処理のプログラミムを作成できます。
しかし、分岐処理を多くすると、判定条件が複雑になり、処理漏れや、境界判定などでバグが出やすくなります。プログラミングする前に、判定条件を整理して、効率的な分岐処理になるように心がけてください。
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