If...Then...Else ステートメント (Visual Basic)
式の値に応じてステートメント グループを条件付きで実行します。
' Multiple-line syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
指定項目
condition
必須。 式を指定します。 式の結果は、True または False、あるいは暗黙的に Boolean に変換可能なデータ型である必要があります。何も式がに評価される [NULL 値の使用]Boolean の変数の場合は、条件式が Trueではなく、Else のブロックが実行されますように処理され。
Then
単一行の構文の場合は必ず指定します。複数行の構文の場合は省略可能です。statements
省略可能。 condition が真 (True) の場合に実行されるステートメントを、If...Then の後ろに続けて指定します。elseifcondition
ElseIf が定義されている場合は必ず指定します。 式を指定します。 式の結果は、True または False、あるいは暗黙的に Boolean に変換可能なデータ型である必要があります。elseifstatements
省略可能。 elseifcondition が真 (True) の場合に実行されるステートメントを、ElseIf...Then の後ろに続けて指定します。elsestatements
省略可能。 それ以前の condition や elseifcondition の式がどれも真 (True) でない場合に実行される一連のステートメントを指定します。End If
If...Then...Else ブロックを終了します。
解説
複数行の構文
If...Then...Else ステートメントに到達すると、condition がテストされます。 condition が真 (True) の場合、Then の次のステートメントが実行されます。 condition が偽 (False) の場合は、各 ElseIf ステートメント (ある場合) が順に評価されます。 真 (True) に評価される elseifcondition が見つかると、その ElseIf の直後に指定されたステートメントが実行されます。 どの elseifcondition も True にならないか、ElseIf ステートメントが 1 つも定義されていない場合は、Else の次のステートメントが実行されます。 Then、ElseIf、または Else に続くステートメントの実行が終わると、End If の次のステートメントからプログラムの実行が続けられます。
ElseIf 句と Else 句はどちらも必要に応じて定義します。 また、If...Then...Else ステートメントでは、ElseIf 句はいくつ指定してもかまいません。ただし、ElseIf 句は、Else 句の後ろには指定できません。 If...Then...Else ステートメントは互いに入れ子にすることができます。
複数行の構文の場合は、If ステートメントのみを最初の行に定義する必要があります。 ElseIf、Else、および End If の各ステートメントの前に記述できるのは、行ラベルだけです。 If...Then...Else ブロックの終わりには、End If ステートメントを指定してください。
ヒント
評価する 1 つの式が、さまざまな値になる場合は、Select...Case ステートメント (Visual Basic) の方が適しています。
単一行の構文
単一行の構文は、短く簡単な条件判断を行うときに使用します。 ただし、複数行の構文の方がより構造化された柔軟な記述ができます。また、コードの読みやすさや保守性が向上し、デバッグもしやすくなります。
ステートメントが単一行の If かどうかを判断するために、Then キーワードの後ろに何が続くかが調べられます。 同じ行内の Then キーワードの後ろにコメント以外の記述があると、単一行の If ステートメントと判断されます。 Then がない場合は、必ず複数行の If...Then...Else の先頭です。
単一行の構文の場合は、If...Then で判断した結果として、複数のステートメントを実行できます。 すべてのステートメントを、コロンで区切って同じ行に記述する必要があります。
使用例
次の例は、If...Then...Else ステートメントの複数行の構文の使用方法を示しています。
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
次の例では、入れ子になった If...Then...Else ステートメントを使用しています。
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour
' Return True if Wednesday from 2 to 4 P.M.,
' or if Thursday from noon to 1 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
次の例は、単一行の構文の使用方法を示しています。
' If A > 10, execute the three colon-separated statements in the order
' that they appear
If A > 10 Then A = A + 1 : B = B + A : C = C + B
参照
関連項目
Select...Case ステートメント (Visual Basic)