[Lesson 8] << [CONTENTS] >> [Lesson 10]
In this lesson, you will learn how to write Visual Basic 2010 code that can make decisions. It will process input from the user and control the program flow and outcomes based on the decisions.
Decisions making is an important part of programming because it can solve practical problems intelligently and provide useful output to the user. For examples, we can write a VB program that can ask the computer to perform a certain task until a certain condition is met or a programme that will reject non-numeric data. In order to control the program flow and to make decisions, we will introduce the If…Then…Else control structure. To write VB code that involves If…Then…Else, we need to use the conditional operators and the logical operators.
9.1 Conditional Operators
The conditional operators are powerful tools that resemble mathematical operators. These operators allow a VB2010 program to compare data values and then decide what actions to take. For example, to execute an event or terminate an event. They are also known as numerical comparison operators. These operators are typically used to compare two values to see whether they are equal, one value is greater or less than the other value. The comparison will return a true or false result. These operators are shown in Table 9.1.
Table 9.1 Conditional Operators
Operator | Description |
---|---|
= | Equal to |
> | Greater than |
< | Less than |
>= | Equal to or Greater than |
<= | Less than or Equal to |
<> | Not equal to |
9.2 Logical Operators
Sometimes we might need to make more than one comparisons. In this case, using numerical comparison operators alone is not sufficient, we need to use the logical operators. The logical operators are shown in Table 9.2. The aforementioned operators are usually used to compare numerical data. However, you can also compare strings with the above operators. In making strings comparison, there are certain rules to follows: Upper case letters are less than lowercase letters, “A”<“B”<“C”<“D”…….<“Z” and number are less than letters.
Table 9.2 Logical Operators
Operator | Description |
---|---|
And | Both sides must be true |
Or | One side or other must be true |
Xor | One side or other must be true but not both |
Not | Negates true |
9.3 Using the If control structure with the Comparison Operators
To effectively control the Visual Basic 2010 program flow, we shall use the If control structure together with the conditional operators and logical operators. There are basically three types of If control structures, namely If….Then statement, If….Then… Else statement and If….Then….ElseIf statement.
9.3(a) If….Then Statement
This is the simplest control structure which asks the computer to perform a certain action specified by the Visual Basic 2010 expression if the condition is true. However, when the condition is false, no action will be performed. The general format for the if…then.. statement is
If condition Then Visual Basic 2010 expression End If
Example 9.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myNumber As Integer myNumber = TextBox1.Text If myNumber > 100 Then Label2.Text = " You win a lucky prize" End If End Sub
* When you run the program and enter a number that is greater than 100, you will see the “You win a lucky prize” statement. On the other hand, if the number entered is less than or equal to 100, you don’t see any display.
9.3(b) If….Then…Else Statement
Using only If….Then the statement is not very useful in programming and it does not provide choices for the users. In order to provide a choice, we can use the If….Then…Else Statement. This control structure will ask the computer to perform a certain action specified by the Visual Basic 2010 expression if the condition is true. And when the condition is false, if…then..an alternative action will be executed. The syntax of if…then…Else statement is
If condition Then Visual Basic 2010 expression Else Visual Basic 2010 expression End If
Example 9.2: Using If…Then…Else
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myNumber As Integer myNumber = TextBox1.Text If myNumber > 100 Then Label2.Text = " Congratulation! You win a lucky prize" Else Label2.Text = " Sorry, You dif not win any prize" End If End Sub
* When you run the program and enter a number that is greater than 100, the statement “Congratulation! You win a lucky prize” will be shown. On the other hand, if the number entered is less than or equal to 100, you will see the “Sorry, You dif not win any prize” statement
Example 9.3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myNumber, MyAge As Integer myNumber = TextBox1.Text MyAge = TextBox2.Text If myNumber > 100 And myAge > 60 Then Label2.Text = " Congratulation! You win a lucky prize" Else Label2.Text = " Sorry, You did not win any prize" End If End Sub
* This program uses the logical And operator besides the conditional operators. This means that both the conditions must be fulfilled in order for the conditions to be true, otherwise, the second block of code will be executed. In this example, the number entered must be more than 100 and the age must be more than 60 in order to win a lucky prize, any one of the above conditions not fulfilled will disqualify the user from winning a prize.
9.3(c) If….Then…ElseIf Statement
If there are more than two alternative choices, using jus If….Then….Else statement will not be enough. In order to provide more choices, we can use the If….Then…ElseIf Statement. executed. The syntax for the if…then.. Else statement is
If condition Then Visual Basic 2010 expression ElseIf condition Then Visual Basic 2010 expression ElseIf condition Then Visual Basic 2010 expression . Else Visual Basic 2010 expression End If
Example 9.4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Mark As Integer Dim Grade as String Mark = TextBox1.Text If myNumber >=80 Then Grade="A" ElseIf Mark>=60 and Mark<80 then Grade="B" ElseIf Mark>=40 and Mark<60 then Grade="C" Else Grade="D" End If End Sub