The Repetition Structure

advertisement
Chapter 6: The Repetition
Structure
Programming with Microsoft Visual Basic
.NET, Second Edition
The Repetition Structure (Looping)
Lesson A Objectives
• Code the repetition structure using the For...Next
and Do...Loop statements
• Write pseudocode for the repetition structure
• Create a flowchart for the repetition structure
• Initialize and update counters and accumulators
Programming with Microsoft Visual Basic .NET, Second Edition
2
The Repetition Structure
• Use the repetition structure to repeatedly process
one or more program instructions until some
condition is met, at which time the repetition ends
• The repetition structure is referred to as a loop
Programming with Microsoft Visual Basic .NET, Second Edition
3
The Repetition Structure (continued)
• Pretest loop: evaluation occurs before the
instructions within the loop are processed
• Posttest loop: evaluation occurs after the
instructions within the loop are processed
Programming with Microsoft Visual Basic .NET, Second Edition
4
The For…Next Loop
• Use the For…Next statement to code a loop that
repeats for a specific number of times
Figure 6-2: Syntax and examples of the For...Next statement
Programming with Microsoft Visual Basic .NET, Second Edition
5
The For…Next Loop (continued)
Figure 6-2: Syntax and examples of the For...Next statement
(continued)
Programming with Microsoft Visual Basic .NET, Second Edition
6
The For…Next Loop (continued)
• counter is a numeric variable that keeps track of
how many times the loop instructions are
repeated
• startvalue, endvalue, and stepvalue
– Must be numeric
– Can be positive or negative, integer or non-integer
– Default stepvalue is 1
Programming with Microsoft Visual Basic .NET, Second Edition
7
The For…Next Loop (continued)
Figure 6-4: Pseudocode and flowchart for the first example shown
in Figure 6-2
Programming with Microsoft Visual Basic .NET, Second Edition
8
The For…Next Loop (continued)
For…Next loop examples:
Dim count As Integer
For count = 0 to 3 Step 1
Debug.WriteLine(count)
Next count
Dim count As Integer
For count = 3 to 0 Step -1
Debug.WriteLine(count)
Next count
Dim count As Integer
For count = 0 to 10 Step 2
Debug.WriteLine(count)
Next count
Dim loc As Single
For loc = 0.5 To 15 Step 0.5
Debug.WriteLine(loc)
Next loc
Programming with Microsoft Visual Basic .NET, Second Edition
9
The Do…Loop Statement
• Unlike the For…Next statement, the Do…Loop
statement can be used to code both a pretest
loop and a posttest loop
• The Do…Loop statement begins with the Do
clause and ends with the Loop clause
Programming with Microsoft Visual Basic .NET, Second Edition
10
The Do…Loop Statement
(continued)
Figure 6-7: Syntax and examples of the Do...Loop statement
Programming with Microsoft Visual Basic .NET, Second Edition
11
The Do…Loop Statement
(continued)
Figure 6-7: Syntax and examples of the Do...Loop statement
(continued)
Programming with Microsoft Visual Basic .NET, Second Edition
12
The Do…Loop Statement
(continued)
Figure 6-9: Flowcharts
for the examples shown
in Figure 6-7
Programming with Microsoft Visual Basic .NET, Second Edition
13
The Do…Loop Statement
(continued)
Figure 6-9: Flowcharts for
the examples shown in
Figure 6-7 (continued)
Programming with Microsoft Visual Basic .NET, Second Edition
14
Using Counters and Accumulators
• Counters and accumulators are used within a
repetition structure to calculate subtotals, totals,
and averages
• A counter is a numeric variable used for counting
something and is typically updated by 1
• An accumulator is a numeric variable used for
accumulating and is updated by an amount that
varies
Programming with Microsoft Visual Basic .NET, Second Edition
15
Using Counters and Accumulators
(continued)
• Initializing: assigning a beginning value to the
counter or accumulator
• Updating (incrementing): adding a number to the
value stored in the counter or accumulator
Programming with Microsoft Visual Basic .NET, Second Edition
16
Nested Repetition Structures
Lesson B Objectives
• Nest repetition structures
Programming with Microsoft Visual Basic .NET, Second Edition
17
Nesting Repetition Structures
• In a nested repetition structure, one loop,
referred to as the inner loop, is placed entirely
within another loop, called the outer loop
• A clock uses nested loops to keep track of the
time
Programming with Microsoft Visual Basic .NET, Second Edition
18
Nesting Repetition Structures
(continued)
Figure 6-16: Nested loops used by a clock
Programming with Microsoft Visual Basic .NET, Second Edition
19
The Grade Calculator Application
• Professor Arkins needs an application that allows
him to assign a grade to any number of students
• Each student’s grade is based on three test
scores, with each test worth 100 points
• The application should total the test scores and
then assign the appropriate grade, using the
table shown on the next slide
Programming with Microsoft Visual Basic .NET, Second Edition
20
The Grade Calculator Application
(continued)
Total points earned
Grade
270–300
A
240–269
B
210–239
C
180–209
D
below 180
F
Programming with Microsoft Visual Basic .NET, Second Edition
21
The Grade Calculator Application
(continued)
• uiAssignGradeButton’s Click event procedure
– Allows Professor Arkins to enter each student’s
test scores, and then assign the appropriate grade
– Contains two loops, one nested within the other
– A For...Next statement controls the inner loop
Programming with Microsoft Visual Basic .NET, Second Edition
22
The Grade Calculator Application
(continued)
• uiAssignGradeButton’s Click event procedure
(continued)
– A Do...Loop statement controls the outer loop
– The inner loop is a pretest loop
– The outer loop is a posttest loop
Programming with Microsoft Visual Basic .NET, Second Edition
23
The Grade Calculator Application
(continued)
Figure 6-20: Sample run of the application that contains the
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
24
Coding the Shoppers Haven
Application
Lesson C Objectives
• Select the existing text in a text box
• Prevent a form from closing
Programming with Microsoft Visual Basic .NET, Second Edition
25
Shoppers Haven
• The manager of Shoppers Haven wants an
application that the store clerks can use to
calculate the discounted price of an item, using
discount rates from 10% through 30% in
increments of 5%
• The clerks will enter the item’s original price
• The application should display the discount rates
and the discounted prices in the interface
Programming with Microsoft Visual Basic .NET, Second Edition
26
Shoppers Haven (continued)
Figure 6-21: User interface for the Shoppers Haven application
Programming with Microsoft Visual Basic .NET, Second Edition
27
Shoppers Haven (continued)
Figure 6-22: TOE chart for the Shoppers Haven application
Programming with Microsoft Visual Basic .NET, Second Edition
28
Shoppers Haven (continued)
Figure 6-23: Pseudocode for the Calculate button’s Click event
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
29
Shoppers Haven (continued)
Figure 6-27: Discounted prices shown in the Shoppers Haven
application
Programming with Microsoft Visual Basic .NET, Second Edition
30
Selecting the Existing Text in a Text
Box
• Use the SelectAll method to select all of the text
contained in a text box
• Syntax: textbox.SelectAll()
• textbox is the name of the text box whose text
you want to select
Programming with Microsoft Visual Basic .NET, Second Edition
31
Selecting the Existing Text in a Text
Box (continued)
• Enter the SelectAll method in a text box control’s
Enter event
• A text box control’s Enter event occurs when the
user tabs to the control, and when the Focus
method is used in code to send the focus to the
control
• The uiOriginalTextBox control’s Enter event is
responsible for highlighting the existing text in the
control
Programming with Microsoft Visual Basic .NET, Second Edition
32
Selecting the Existing Text in a Text
Box (continued)
Figure 6-29: Text selected in the Shoppers Haven application
Programming with Microsoft Visual Basic .NET, Second Edition
33
Coding the TextChanged Event
Procedure
• A control’s TextChanged event occurs when the
contents of a control’s Text property change
• Use the uiOriginalTextBox’s TextChanged event
to clear the contents of the uiDiscPricesLabel
when the user changes the original price
Programming with Microsoft Visual Basic .NET, Second Edition
34
Coding the ShoppersForm’s Closing
Event Procedure
• A form’s Closing event occurs when a form is
about to be closed
• In the Shoppers Haven application, the Closing
event procedure is responsible for:
– Verifying that the user wants to exit the application
– Taking an action based on the user’s response
Programming with Microsoft Visual Basic .NET, Second Edition
35
Coding the ShoppersForm’s Closing
Event Procedure (continued)
Figure 6-31: Pseudocode for the ShoppersForm’s Closing event
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
36
Coding the ShoppersForm’s Closing
Event Procedure (continued)
Figure 6-33: Message box displayed by the form’s Closing event
Programming with Microsoft Visual Basic .NET, Second Edition
37
Summary
• Repetition structure (loop): the computer repeats
a set of instructions until some condition is met
• Code a repetition structure in Visual Basic .NET
using one of the following statements: For...Next,
Do...Loop, and For Each…Next
• The For...Next statement is pretest loops only
• The Do...Loop statement can code pretest and
posttest loops
Programming with Microsoft Visual Basic .NET, Second Edition
38
Summary (continued)
• To use a counter or accumulator:
– Initialize, if necessary
– Update using an assignment statement in a
repetition structure
• To nest a repetition structure, place the entire
inner loop within the outer loop
Programming with Microsoft Visual Basic .NET, Second Edition
39
Summary (continued)
• To process code when the user tabs to a control,
or when the Focus method is used in code to
send the focus to the control, enter the code in
the control’s Enter event procedure
• To process code when a form is about to be
closed, enter the code in the form’s Closing event
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
40
Download