LESSON 7 Visual Basic Selection (If Statements)

advertisement
LESSON 7
Visual Basic
Selection (If Statements)
If Statement
If uses comparison operators to test data values. If uses comparison operator results to test data.
If might execute one or more lines of code, depending on the results of the comparison.
Before If, the code you wrote executed one statement after another. If lets your program be more
decisive and execute only parts of the program under specific circumstances. If a comparison test
is true, the body of the If statement executes.
If comparisonTest Then
‘One or more Visual Basic statements
End If
End If lets Visual Basic know where the body of the If statement ends.
Suppose that the user enters a sales figure into Sales. The following If computes a bonus amount
based on the sales:
If Sales > 5000.00 Then
Bonus = Sales * .12
End If
Visual Basic stores 0 in all numeric variables that you don't first initialize. Therefore, sngBonus
has a 0 before the If executes. Once the If executes, the code changes the sngBonus variable
only if the value of the txtSales. Text property is more than 5000.00. In a way, the If reads like
this:
If the sales are more than $5,000.00, then compute a bonus based on that sales value.
The body of an If can have more than one statement. The body is often called a block. The
following If calculates a bonus, the cost of sales, and a reorder amount based on the value of the
txtSales text box entry:
Dim Sales, Bonus, curCostOfSales, curReorderCost as Double
Sales = Val(txtSales.Text)
If (Sales > 5000.00) Then
Bonus = Sales * .12
curCostOfSales = Sales * .41
curReorderCost = Sales * .24
End If
The three statements that make up the body of the If execute only if the condition Sales >
5000.00 is true. Suppose that this code contains another assignment statement immediately after
End If. That assignment statement is outside the body of the If, so the true or false condition will
not affect it. Therefore, the tax in the following routine executes regardless of whether the sales
are more or less than $5000.00:
If (Sales > 5000.00) Then
Bonus = Sales * .12
curCostOfSales = Sales * .41
curReorderCost = Sales * .24
End If
Tax = .15 * Sales
DPCDSB
Computer Science TIK2O1
Page - 1 -
LESSON 7
Visual Basic
Selection (If Statements)
The body of the If executes only if the comparison test is true. Otherwise, the rest of the program
continues as usual.
THE IF STATEMENTS ELSE BRANCH
Else specifies the code that executes if the comparison test is false. Here is the complete format
of the If statement with Else:
If comparisonTest Then
'One or more VB statements
Else
'One or more VB statements
End If
The If-Else statement is sometimes called a mutually exclusive statement. The term mutually
exclusive simply means that one set of code or the other executes, but not both.
Suppose that a salesperson receives a bonus if sales are high (over $5,000.00) or suffers pay cut
if sales are low (below $5,000.00). The If-Else shown next contains the code necessary to reward
or punish the salesperson. The code body of the If computes the bonus as done in the previous
section. The code body of the Else subtracts $25 from the salesperson's pay, which is stored in
the variable named curPayAmt, if the sales quota is not met. The following code computes such a
payment amount based on the quota:
If (Sales > 5000.00) Then
Bonus = .05 * Sales
‘Here we can count the number of Bonuses given
Count = Count + 1
Else
curPayAmt = curPayAmt – 25.00
End If
curTaxes = curPayAmt * .42
Visual Basic takes everything to the right of the equal sign and stores that value in the variable to
the left of the equal sign. Therefore, the fourth line subtracts the 25 from the value stored in
curPayAmt and then assigns that result back to curPayAmt. In effect, it lowers the value of
curPayAmt by 25. The Accumulator variable Count would have to be declared as Single and set
to zero to begin the counter at zero.
Example :
DPCDSB
Dim Count as Single
Count = 0
Computer Science TIK2O1
Page - 2 -
LESSON 7
Visual Basic
Selection (If Statements)
NESTED IF STATEMENTS
The Nested If Statement is composed of many consecutive If Statements and forms a very
detailed condition. The basic structure of the Nested If Statement is shown below.
If condition then
'Body of Statement
If condition then
'Body of Statement
End If
End If
The order of the conditions is very important, as the program will proceed to the next condition
only when one is found to be true. Otherwise, the program will proceed to the EndIf line that
corresponds to that If Statement.
ElseIf Statements can be incorporated into Nested If Statements. This construct is best for a
number of related conditions
If condition then
'Body of Statement
ElseIf condition then
'Body of Statement
ElseIf condition then
'Body of Statement
else
‘Otherwise do these statement(s)
End If
DPCDSB
Computer Science TIK2O1
Page - 3 -
LESSON 7
Visual Basic
Selection (If Statements)
Assignment: Program Code / Error Detection
Syntax Errors
A statement that violates the rules of Visual Basic contains a syntax error.
are commonly just spelling (typo) mistakes.
Example:
Dim Months as Integer = 12
‘Illegal in a variable declaration
Most syntax errors
Some syntax errors, such as the one above, are immediately detected by Visual Basic, which
displays the code in red. Other syntax errors may not be detected until you run the program. A
run-time error is generated and a dialog box is displayed.
Logic Errors
Statements that are syntactically correct but produce unexpected results. Not just a spelling error
or a rule violation but code which fails to generate the results desired.

Circle the errors and note the type of error (logic & syntax) in the left column. Write the
corrections in the right hand column
Program A: Helping with the Food Drive
Dim Answer as string
' Are you helping with the food drive?
Answer = txtAnswer.Text
Corrections
if Answer = yes
lblComment = "Thanks for the donation"
end
Program B: Old enough to drive
Dim Age as Interger
' How old are you?
Age = Val(txtAge.Text)
Age >= 16
MsgBox "You are old enough to drive."
Then
MsgBox "You are not old enough to drive."
end if
Corrections
Program C: Current mark
Dim Mark is Byte
Corrections
'What is your current mark is in this course?
Mark = Val(txtMark.Text)
if Mark >= 0
MsgBox "Much greater effort is needed."
Else if mark >= 60
MsgBox "Satisfactory…need to improve"
Else if Mark >=80
MsgBox "Keep up the Excellent work!"
end if
DPCDSB
Computer Science TIK2O1
Page - 4 -
LESSON 7
Visual Basic
Selection (If Statements)
Assignment:
1. Create a program, which
would ask the question
“What is the Capital of
Canada?
The program
should allow the user to
enter the answer. A Check
Answer button will check to
see if the answer is Ottawa.
If the answer is not
“Ottawa”
then
display
Incorrect and if the answer
is “Ottawa” then display
Correct.
2. Write a program that asks the user to input the answer to the question "Should a keyboard be
set at elbow or shoulder height?". If the input is elbow, output "Correct". Otherwise, output the
correct answer along with an explanation.
3. Write a program to input a number of muffins to order. The GST (7%) is only applied when
the number of muffins ordered is less than six. Therefore there is no GST on orders of six or
more. Include an image of a muffin (1” by 1”). Draw this picture or use a picture of a muffin
found on the internet. Display the Final Bill in Currency format $##.##
4. Write a program which would allow the
user to enter: the number of litres and
the type of Gas purchased. The program
is to calculate the Price of the Gas
depending of the # of litres & type of
Gas. User must be able to enter Gold,
Silver, or Bronze for the Type of gas.
Where the price of: Gold is $0.729,
Silver is $0.709 and Bronze is $0.689.
5. Write a program to input three integers and output a message indicating their sum and
whether it is positive, negative or zero.
DPCDSB
Computer Science TIK2O1
Page - 5 -
LESSON 7
Visual Basic
Selection (If Statements)
6. Create a program, which would ask five matching type questions. Each question is to have a
picture of a Flag and a corresponding proposed country. The question is to be answered with
a True (T) or False (F). A Check Answer button will check to see if the answers are correct.
Comments are to
indicate if the answer
was
correct
or
incorrect. A score is
to be tallied of all the
correct
answers.
The score is to be
displayed.
7. Write a program, which would allow the user to enter their Annual Salary. The program is to
display the Tax Bracket (maximum) Percentage and calculate the Total Income Tax
According to the following table:
Annual Salary Range
$0 to $27500
$27501 to $55000
$55001 and up
First 27500
Next 27500
Rest
%
17%
24%
29%
Example:
Annual Salary =
(First) 27500 * 17% =
(Rest)10000 * 24% =
TOTAL =
$37500
$4675
$2400
$7075
Note that the entire amount was not
multiplied by 24%, just the amount is
that tax bracket.
The program must also Exit when the
option is chosen.
DPCDSB
Computer Science TIK2O1
Page - 6 -
LESSON 7
Visual Basic
Selection (If Statements)
PROGRAMMING ASSIGNMENT RUBRIC /24
Criteria
NAME:
1
2
3
4
Demonstrates
limited ability to
express a decision
structure in a
programming
language.
Demonstrates
limited ability to write
a program that
compares data using
constants, variables,
and expressions.
Demonstrates some
ability to express a
decision structure in
a programming
language.
Demonstrates strong
ability to express a
decision structure in
a programming
language.
Using a decision
structure
involving two or
more
alternatives
SP3.06K
Demonstrates
limited ability to write
a program that uses
a decision structure
involving two or
more alternatives.
Demonstrates some
ability to write a
program that uses a
decision structure
involving two or
more alternatives.
Using sequence
and decisions
appropriately
SPV.04K
SP3.08K
Demonstrates
limited ability to use
appropriate
sequences and
decisions to conform
to a program design.
Demonstrates
limited ability to
document a decision
structure.
Demonstrates some
ability to use
appropriate
sequences and
decisions to conform
to a program design.
Demonstrates some
ability to document a
decision structure.
Demonstrates
considerable ability
to express a
decision structure in
a programming
language.
Demonstrates
considerable ability
to write a program
that compares data
using constants,
variables, and
expressions.
Demonstrates
considerable ability
to write a program
that uses a decision
structure involving
two or more
alternatives.
Demonstrates
considerable ability
to use appropriate
sequences and
decisions to conform
to a program design.
Demonstrates
considerable ability
to document a
decision structure.
Demonstrates
limited ability to
validate a program
using appropriate
data.
Demonstrates some
ability to validate a
program using
appropriate data.
Demonstrates
considerable ability
to validate a
program using
appropriate data.
Demonstrates strong
ability to validate a
program using
appropriate data.
Expressing a
decision
structure
SPV.04K
TF3.04K
Comparing data
SP3.05K
Documenting a
decision
structure
SPV.03K
SP3.09K
Validating a
program
SP1.05K
SP3.11K
DPCDSB
Demonstrates some
ability to write a
program that
compares data using
constants, variables,
and expressions.
Computer Science TIK2O1
Demonstrates strong
ability to write a
program that
compares data using
constants, variables,
and expressions.
Demonstrates strong
ability to write a
program that uses a
decision structure
involving two or
more alternatives.
Demonstrates strong
ability to use
appropriate
sequences and
decisions to conform
to a program design.
Demonstrates strong
ability to document a
decision structure.
Page - 7 -
Download