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.
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.
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.
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.