Which of the following is the correct if clause to determine whether choice is other than 10

Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

If...Then...Else Statement (Visual Basic)

  • Article
  • 09/15/2021
  • 5 minutes to read

In this article

Conditionally executes a group of statements, depending on the value of an expression.

Syntax

' Multiline syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

This article includes several examples that illustrate uses of the If...Then...Else statement:

  • Multiline syntax example
  • Nested syntax example
  • Single-line syntax example

Parts

condition
Required. Expression. Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

If the expression is a Nullable Boolean variable that evaluates to Nothing, the condition is treated as if the expression is False, and the ElseIf blocks are evaluated if they exist, or the Else block is executed if it exists.

Then
Required in the single-line syntax; optional in the multiline syntax.

statements
Optional. One or more statements following If...Then that are executed if condition evaluates to True.

elseifcondition
Required if ElseIf is present. Expression. Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

elseifstatements
Optional. One or more statements following ElseIf...Then that are executed if elseifcondition evaluates to True.

elsestatements
Optional. One or more statements that are executed if no previous condition or elseifcondition expression evaluates to True.

End If
Terminates the multiline version of If...Then...Else block.

Remarks

Multiline syntax

When an If...Then...Else statement is encountered, condition is tested. If condition is True, the statements following Then are executed. If condition is False, each ElseIf statement (if there are any) is evaluated in order. When a True elseifcondition is found, the statements immediately following the associated ElseIf are executed. If no elseifcondition evaluates to True, or if there are no ElseIf statements, the statements following Else are executed. After executing the statements following Then, ElseIf, or Else, execution continues with the statement following End If.

The ElseIf and Else clauses are both optional. You can have as many ElseIf clauses as you want in an If...Then...Else statement, but no ElseIf clause can appear after an Else clause. If...Then...Else statements can be nested within each other.

In the multiline syntax, the If statement must be the only statement on the first line. The ElseIf, Else, and End If statements can be preceded only by a line label. The If...Then...Else block must end with an End If statement.

Tip

The Select...Case Statement might be more useful when you evaluate a single expression that has several possible values.

Single-Line syntax

You can use the single-line syntax for a single condition with code to execute if it's true. However, the multiple-line syntax provides more structure and flexibility and is easier to read, maintain, and debug.

What follows the Then keyword is examined to determine whether a statement is a single-line If. If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement. If Then is absent, it must be the start of a multiple-line If...Then...Else.

In the single-line syntax, you can have multiple statements executed as the result of an If...Then decision. All statements must be on the same line and be separated by colons.

Multiline syntax example

The following example illustrates the use of the multiline syntax of the If...Then...Else statement.

Module Multiline
    Public Sub Main()
        'Create a Random object to seed our starting value 
        Dim randomizer As New Random()
        'set our variable
        Dim count As Integer = randomizer.Next(0, 5)

        Dim message As String

        'If count is zero, output will be no items
        If count = 0 Then
            message = "There are no items."
        'If count is 1, output will be "There is 1 item.".        
        ElseIf count = 1 Then
            message = "There is 1 item."
        'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count. 
        Else
            message = $"There are {count} items."
        End If

        Console.WriteLine(message)
    End Sub
End Module
'This example displays output like the following:
' There are 4 items.

Nested syntax example

The following example contains nested If...Then...Else statements.

Module Nested
    Public Sub Main() 
        ' Run the function as part of the WriteLine output.
        Console.WriteLine("Time Check is " & CheckIfTime() & ".")     
    End Sub

    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 3:59 P.M.,
        ' or if Thursday from noon to 12:59 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
End Module
'This example displays output like the following:
'Time Check is False.

Single-Line syntax example

The following example illustrates the use of the single-line syntax.

Module SingleLine
    Public Sub Main()

        'Create a Random object to seed our starting values 
        Dim randomizer As New Random()

        Dim A As Integer = randomizer.Next(10, 20)
        Dim B As Integer = randomizer.Next(0, 20)
        Dim C As Integer = randomizer.Next(0, 5)

        'Let's display the initial values for comparison
        Console.WriteLine($"A value before If: {A}")
        Console.WriteLine($"B value before If: {B}")
        Console.WriteLine($"C value before If: {C}")

        ' 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

        'If the condition is true, the values will be different
        Console.WriteLine($"A value after If: {A}")
        Console.WriteLine($"B value after If: {B}")
        Console.WriteLine($"C value after If: {C}")

    End Sub
End Module
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21

See also

  • Choose
  • Switch
  • #If...Then...#Else Directives
  • Select...Case Statement
  • Nested Control Structures
  • Decision Structures
  • Logical and Bitwise Operators in Visual Basic
  • If Operator

Feedback

Submit and view feedback for

Which logical operators perform short

Which logical operators perform short-circuit evaluation? Short-circuit evaluation is performed with the not operator.

Does Python use the same symbols for the assignment operator?

Python uses the same symbols for the assignment operator and the equality operator. Short-circuit evaluation is performed with the not operator. The decision structure that has two possible paths of execution is known as _____. The not operator is a unary operator and it must be a compound expression.

Which structure determines the order in which a set of statements executes?

A control structure is a logical design that controls the order in which a set of statements execute.

Does the If statement causes one or more statements to execute only when a Boolean expression is true?

The if statement causes one or more statements to execute only when a Boolean expression is true. The if statement is used to create a decision structure, which allows a program to have more than one path of execution.