The If Statement

One of the powerful features in computer languages is the ability to make decisions. A script is written to test some condition -- normally based on the value contained in a variable -- and to take alternate courses of action based on whether the condition tested is evaluated as Boolean True or False. In other words, the program can branch to alternate sections of code rather than execute statement in a strict linear sequence.

Simple decision making in Visual Basic takes place with the If statement, which has the following general format.

If condition Then

   ...statements

End If

A condition -- one that can be evaluated as either True or False -- is posited. If evaluation of the condition turns out to be True, then one or more statements are executed; if the condition is False, the statements are not executed. Thus, depending on the condition, either some processing takes place or it does not.

Conditional Operators

Conditional expressions are set up using relational operators to compare values. These operators, which were presented earlier, are repeated in the following table.

Operator Use
= Tests whether two values are equal.
<> Tests whether two values are not equal.
< Tests whether the first value is less than the second value.
> Tests whether the first value is greater than the second value.
<= Tests whether the first value is less than or equal to the second value.
>= Tests whether the first value is greater than or equal to the second value.

A conditional expression is formed by relating values -- either variables or constants -- with these operators. The comparison is evaluated as Boolean True or False, and the script reacts to that condition. The following script presents a simple example of script decision making.

Sub Button_Click (Src As Object, Args As CommandEventArgs)

  If Args.CommandName = "Button 1" Then

    ButtonResponse.Text = "You clicked Button 1"

  End If

End Sub

<asp:Button Text="Click Me" runat="server"
  OnCommand="Button_Click" CommandName="Button 1"/>
<asp:Button Text="Click Me" runat="server"
  OnCommand="Button_Click" CommandName="Button 2"/>
<asp:Label id="ButtonResponse" EnableViewState="False" runat="server"/>

Both button clicks call the Button_Click subprogram. The subprogram tests the CommandName argument passed to it to see if it is "Button 1". If so, then a message is written to the textbox. If a different CommandName is passed, then no action is taken. The condition test Args.CommandName = "Button 1" checks for equality of both sides of the relational operator.

Logical Operators

Sometimes you need to combine condition tests. For instance, you might need to know if a numeric value is within a particular range; that is, whether the number is greater than one value and less than another value. Or, you might want to see if the number is outside a range by testing whether it is less than one value or greater than a second value. These kinds of combination tests are made possible by using two or more relational tests combined with the logical operators And, Or, and Not to form multiple comparisons. These operators were presented earlier and are repeated in the following table.

Logical
Operator
Comparison
And condition1 And condition2
The condition1 and condition2 tests both must be true for the expression to be evaluated as True.
Or condition1 Or condition2
Either the condition1 or condition2 test must be true for the expression to be evaluated as True.
Not Not condition
The expression result is set to its opposite; a True condition is set to False and a False condition is set to True.
Xor condition1 Xor condition2
Either condition1 is true or condition2 is true, but not both, for the condition test to be evaluated as True.

Below is an example that uses a multiple condition test. After entering a value in the text box, click the "Check" button. The script determines if you entered a number between 1 and 10 and, if so, confirms this value with a message.

Sub Check_Number (Src As Object, Args As EventArgs)

  If Number.Text <> "" Then

    If Number.Text >= 1 And Number.Text <= 10 Then
      NumberResponse.Text = "The number is between 1 and 10."
    End If

  End If

End Sub

<asp:TextBox id="Number" Size="1" runat="server"/>
<asp:Button Text="Check" OnClick="Check_Number" runat="server"/>
<asp:Label id="NumberResponse" EnableViewState="False" runat="server"/>

This script has an If statement nested inside a containing If statement. The outer statement,

If Number.Text <> "" Then

checks whether a value has been entered into the textbox (it is not equal to empty, or null). If this condition is true, then the enclosed statements are executed. The enclosed statements form a second If test. In this case the value entered in the textbox is tested so see if it is greater than or equal to 1 and if it is less than or equal to 10. If these two conditions are true, the the message is displayed.