Date post: | 04-Jan-2016 |
Category: |
Documents |
Upload: | herbert-nash |
View: | 250 times |
Download: | 0 times |
Tutorial 6: The Repetition Structure 1
Tutorial 6The Repetition Structure
Tutorial 6: The Repetition Structure 2
The Repetition Structure (Looping)Lesson A Objectives
After completing this lesson, you will be able to: 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 Display a message in the Output window while an
application is running Change the location and size of a control while an
application is running Initialize and update counters and accumulators
Tutorial 6: The Repetition Structure 3
The Repetition Structure
Most programs also contain the selection structure, which you learned about in Tutorials 4 and 5
Programmers use the repetition structure, referred to more simply as a loop, when they need the computer to repeatedly process one or more program instructions until some condition is met, at which time the loop ends
In a pretest loop, the evaluation occurs before the instructions within the loop are processed
In a posttest loop, the evaluation occurs after the instructions within the loop are processed
Tutorial 6: The Repetition Structure 4
The For … Next Loop
You can use the For…Next statement to code a loop whose instructions you want processed a precise number of times
Syntax:
For counter = startValue To endValue [Step stepValue]
[instructions you want repeated]
Next [counter] counter is the name of a numeric variable and it keeps track
of how many times the loop instructions are repeated startValue, endValue, and stepValue must be numeric and
they can be either positive or negative, integer or non-integer (default stepValue is 1)
Tutorial 6: The Repetition Structure 5
A For … Next Example
Dim intCount As Integer
For intCount = 0 to 3 Step 1
Debug.WriteLine(intCount)
Next intCount
Dim intCount As Integer
For intCount = 3 to 0 Step -1
Debug.WriteLine(intCount)
Next intCount
Dim intCount As Integer
For intCount = 0 to 10 Step 2
Debug.WriteLine(intCount)
Next intCount
Dim sngLoc As Single
For sngLoc = 0.5 To 15 Step 0.5
Debug.WriteLine(sngLoc)
Next sngLoc
Tutorial 6: The Repetition Structure 6
Flowchart and Pseudocode
Hexagon Repeat for intCount = 1 to 3 by 1
Display intCount
Next IterationintCount
+=1 > 3
1
Display intCount
Tutorial 6: The Repetition Structure 7
The Do…Loop Statement
Pretest condition Pretest condition
Do While Condition
[loop instructions]
Loop
Do Until Condition
[loop instructions]
Loop
Posttest condition Posttest condition
Do
[loop instructions]
Loop While Condition
Do
[loop instructions]
Loop Until Condition
• 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
Tutorial 6: The Repetition Structure 8
Loop Examples
Dim intCount As Integer = 1
Do While intCount < 3
Debug.WriteLine(intCount)
intCount += 1
Loop
Dim intCount As Integer = 1
Do Until intCount > 3
Debug.WriteLine(intCount)
intCount += 1
Loop
Dim intCount As Integer = 1
Do
Debug.WriteLine(intCount)
intCount += 1
Loop While intCount < 3
Dim intCount As Integer = 1
Do
Debug.WriteLine(intCount)
intCount += 1
Loop Until intCount > 3
Tutorial 6: The Repetition Structure 9
Do While Pretest Loop
intCount = 1
Repeat while intCount < 3
Display intCount
Add 1 to intCount
End Repeat
intCount = 1
intCount <= 3
intCount += 1
F
T
Display intCount
Tutorial 6: The Repetition Structure 10
Do Until Posttest Loop
intCount = 1
Repeat
Display intCount
Add 1 to intCount
End Repeat until intCount > 3
intCount = 1
intCount > 3
intCount += 1
F
T
Display intCount
Tutorial 6: The Repetition Structure 11
Using Counters and Accumulators
Counters and accumulators are used within a repetition structure to calculate subtotals, totals, and averages
Initialized (usually to 0 or 1) outside the loop and updated within the loop
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 (adding together) and is updated by an amount that varies
Initializing means to assign a beginning value to the counter or accumulator
Updating, also called incrementing, means adding a number to the value stored in the counter or accumulator
Tutorial 6: The Repetition Structure 12
Using CollectionsLesson B Objectives
After completing this lesson, you will be able to:
Access the controls in the Controls collection
Code the repetition structure using the For Each…Next statement
Create an object variable
Create a collection
Create parallel collections
Enable and disable a control
Tutorial 6: The Repetition Structure 13
The Controls Collection
The controls contained on a Windows form belong to the Controls collection in Visual Basic .NET
A collection is simply a group of one or more individual objects treated as one unit
Identifies by an index, automatically assigned by Visual Basic .NET when object is created
Refer to a control Controls.Item(index)
Controls are numbered LIFO – that is, the last control object has an index = 0
The value of Controls.Count gives the number of controls on a form
Tutorial 6: The Repetition Structure 14
Accessing the Controls Collection
Dim intX As Integer = 0
For intX = 0 To Controls.Count – 1
Debug.WriteLine(Controls(intX).Name)
Next intX
Dim intX As Integer = 0
Do While intX < Controls.Count
Debug.WriteLine(Controls(intX).Name)
If TypeOf Controls.Item(intX) Is TextBox Then
Controls.Item(intX).Text = “”
End If
intX += 1
Loop
Tutorial 6: The Repetition Structure 15
Object Variables
An object variable is a memory location that can store the address of an object
The address indicates where the object is located in the computer’s internal memory
An object variable is initialized to the keyword Nothing, which simply means that the object variable does not currently contain an address
You assign an object variable
objStateTextBox = Me.StateTextBox
Tutorial 6: The Repetition Structure 16
The For Each…Next Statement The For Each…Next statement is used to code a loop whose
instructions you want processed for each object in a collection
For Each element In group
[processing statements for element]
Exit For
Next element
Dim objTextBox As TextBox
For Each objTextBox In Me.Controls
If objTextBox.Text = “Hello” Then
Exit For
End If
Next
Tutorial 6: The Repetition Structure 17
Flowchart and Pseudocode for the For Each … Next
Repeat for each Control in Collection
if control is a label
remove border
end if
end repeat
Repeat for each Control in Controls collection
Remove the borderIs control a label?
F
T
stop
Tutorial 6: The Repetition Structure 18
Creating a User-Defined Collection
A user-defined collection allows you to group related controls together
To define a collection
Dim collectionName As New Collection() To insert an object into the collection
collectionName.Add(object[, key]) To access an object in the collection
objMyObject = collectionName(index)
objMyObject = collectionName(key) To remove an object from the collection
collectionName.Remove(index|key)
Tutorial 6: The Repetition Structure 19
Creating a User-Defined Collection
'declare form-level collections
Private mCheckBoxCollection As New Collection()
Private Sub GradeForm_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim intCtr As Integer
For intCtr = 0 To Controls.Count - 1
If TypeOf (Controls(intCtr)) Is CheckBox Then
mCheckBoxCollection.Add(Controls(intCtr))
End If
Next
…
Tutorial 6: The Repetition Structure 20
Parallel Collection
Collections whose objects are related in some way are called parallel collections
You can indicate to the computer that two collections are parallel collections by setting the key argument for each object in one of the collections to the name of the corresponding object in the other collection
For intCtr = 0 To Controls.Count - 1
If TypeOf (Controls(intCtr)) Is TextBox Then
mTextBoxCollection.Add(Controls(intCtr), _
Replace(Controls(intCtr).Name, "TextBox", _
"CheckBox"))
End If
Next
Tutorial 6: The Repetition Structure 21
The Enabled Property
Private Sub ProcessCheckBox(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Proj1CheckBox.Click, …
Dim objCB As CheckBox, objTB As TextBox
objCB = sender ' assign sender to the object variable
objTB = mTextBoxCollection(oCB.Name)
If objCB.Checked Then
objTB.Enabled = True
objTB.Focus()
Else
objTB.Text = ""
objTB.Enabled = False
End If
End Sub
Tutorial 6: The Repetition Structure 22
Completing the Grade Calculator ApplicationLesson C Objectives
After completing this lesson, you will be able to:
Select the existing text when the user tabs to a
text box
Prevent a form from closing
Tutorial 6: The Repetition Structure 23
Coding the DisplayButton’s Click Event Procedure
You still need to code the DisplayButton’s
Click event procedure, the GradeForm’s
Closing event procedure, and the Enter event
procedure for the text boxes
You begin with the DisplayButton’s Click
event procedure as the pseudocode in Figure
6-50 illustrates
Tutorial 6: The Repetition Structure 24
Tutorial 6: The Repetition Structure 25
Coding the GradeForm’sClosing Event Procedure
A form’s Closing event occurs when a
form is about to be closed
You can close a form using either the
Close button on its title bar, or the
Me.Close( ) statement in code