[go: up one dir, main page]

0% found this document useful (0 votes)
16 views46 pages

CH 06

Uploaded by

Melat Landuber
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views46 pages

CH 06

Uploaded by

Melat Landuber
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 46

Chapter 6 – Repetition

6.1 Do Loops
6.2 For...Next Loops
6.3 List Boxes and Loops

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 1
6.1 Do Loops

• Pretest Form of a Do Loop


• Posttest Form of a Do Loop
• A Financial Calculation

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 2
Do Loops

• A loop is one of the most important


structures in programming.
• Used to repeat a sequence of statements
a number of times.
• The Do loop repeats a sequence of
statements either as long as or until a
certain condition is true.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 3
Pretest Do Loop Condition is tested.
If it is true,
the loop is run.
Do While condition If it is false,
the statements
statement(s) following the
Loop Loop statement
are executed.

These statements are inside


the body of the loop and
are run if the condition
above is true.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 4
Pseudocode
and Flow Chart

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 5
Example 1
Private Sub btnDisplay_Click(...) _
Handles btnDisplay.Click
'Display the numbers from 1 to 7
Dim num As Integer = 1
Do While num <= 7
lstNumbers.Items.Add(num)
num += 1 'Add 1 to the value of num
Loop
End Sub

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 6
Example: Repeat Request as
Long as Response in Incorrect
Dim passWord As String = ""
Do While passWord <> "SHAZAM"
passWord = InputBox("What is the password?")
passWord = passWord.ToUpper
Loop
passWord is the loop control
variable because the value stored
in passWord is what is tested to
determine if the loop should
continue or stop.
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 7
Example 3: Sentinel-
Controlled Loop
Dim num As Double = 0
Dim prompt As String = "Enter a
nonnegative number. Enter -1 " &
"to terminate entering numbers."
num = CDbl(InputBox(prompt))
Do While num <> -1 '-1 is sentinel value
.
.
num = CDbl(InputBox(prompt))
Loop
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 8
Posttest Do Loop

Do
statement(s)
Loop Until condition

Loop is executed once and then the condition


is tested. If the condition is false, the loop is run again.
If it is true, the statements following the Loop Until
statement are executed.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 9
Example: Repeat Request
Until Proper Response
Dim passWord As String = ""
Do
passWord = InputBox("What is the password?")
passWord = passWord.ToUpper
Loop Until passWord = "SHAZAM"

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 10
Pseudocode
and Flowchart

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 11
Example 5: Form

txtAmount

txtWhen

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 12
Example 5: Code

Private Sub btnCalculate_Click(...) Handles _


btnCalculate.Click
Dim balance As Decimal, numYears As Integer
balance = CDec(txtAmount.Text)
Do While balance < 1000000
balance += 0.06D * balance
numYears += 1
Loop
txtWhen.Text = "In " & numYears &
" years you will have a million dollars."
End Sub
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 13
Example 5: Output

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 14
Comments

• Be careful to avoid infinite loops – loops


that never end.
• Visual Basic allows for the use of either
the While keyword or the Until keyword
at the top or the bottom of a loop.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 15
6.2 For…Next Loops

• General Form of a For…Next Loop


• Step Keyword
• Nested For…Next Loops
• Local Type Inference

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 16
For…Next Loops

• Used when we know how many times we


want the loop to execute
• A counter controlled loop

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 17
For…Next Loop Syntax

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 18
Sample
For i As Integer = 1 To 5
lstTable.Items.Add(i & " " & i ^ 2)
Next

The loop counter variable, i, is


• initialized to 1
• tested against the stop value, 5
• incremented by 1 at the Next statement
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 19
Similar Do While Loop

Dim i As Integer = 1
Do While i <= 5
lstTable.Items.Add(i & " " & i ^ 2)
i += 1
Loop

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 20
Example 1: Output

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 21
Example 1: Code

Dim pop As Double = 300000


For yr As Integer = 2015 To 2019
lstTable.Items.Add(yr & " " &
pop.ToString("N0")
pop += 0.03 * pop
Next

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 22
Step Keyword

• Normally after each pass the value of the


counter variable increases by 1
• If Step s is appended to the For statement,
the value of s will be added to the counter
variable after each pass.
• If the value of s is a negative number, the
value of the counter variable will decrease
after each pass.
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 23
Example with Negative Step
Value

For j As Integer = 10 To 1 Step -1


lstBox.Items.Add(j)
Next
lstBox.Items.Add("Blastoff")

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 24
Example: Nested For…Next
Loops
For i As Integer = 65 To 70
For j As Integer = 1 To 25
Outer Inner
loop loop lstBox.Items.Add(Chr(i) & j)
Next
Next

Output: A1
A2
A3
:
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 25
For and Next Pairs

• For and Next statements must be paired.


• If one is missing, the automatic syntax
checker will complain with a wavy blue
underline and a message such as
“A ‘For’ must be paired with a ‘Next’.”

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 26
Start, Stop, and Step values

• Consider a loop beginning with


For i As Integer = m To n Step s
• The loop will be executed exactly once if
m equals n no matter what value s has.
• The loop will not be executed at all if m is
greater than n and s is positive,
or if m is less than n and s is negative.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 27
Altering the Counter Variable

• The value of the counter variable should


not be altered within the body of the loop.
• Doing so might cause the loop to repeat
indefinitely or have an unpredictable
number of repetitions.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 28
Double Step Values

• Can lead to rounding errors with the


result that the loop is not executed the
intended number of times.
• We will only use variables of type Integer
or Decimal for step variables.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 29
6.3 List Boxes and Loops

• Some Properties, Methods, and Events


of List Boxes
• List Boxes Populated with Strings
• List Boxes Populated with Numbers
• Searching an Ordered List

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 30
List Box Properties

• The total number of items in a list box is


lstBox.Items.Count

• Note: Each item in lstBox is identified by an


index number from 0 to lstBox.Items.Count – 1
• The index number of the currently highlighted
item is given by:
lstBox.SelectedIndex

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 31
More List Box Properties

• The value of the item with an index of n is:


lstBox.Items(n)

• The data type of the items in a list box is


Object.
• To display the first element of lstBox.Items in
a text box:
txtBox.Text = CStr(lstBox.Items(0))

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 32
Currently Highlighted Item in
a List Box
The value of the currently highlighted item as a
string can be obtained as
lstBox.Text

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 33
The Sorted Property

• Items can be placed into the list at


design time or run time
• The Sorted property causes items in the
list to be ordered automatically as strings
• Caution: Numbers in a sorted list box will
not necessarily be in increasing
numerical order

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 34
Example 1: Form

lstStates

lstStates is filled at design time with the names of


the U.S. states in the order they joined the union.
© 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. 35
Example 1: Code

Private Sub btnDisplay_Click(...) Handles _


btnDisplay.Click
'Display last ten states to join the union
Dim n As Integer = lstStates.Items.Count
For i As Integer = (n - 1) To (n - 10) Step -1
lstLastTen.Items.Add(lstStates.Items(i))
Next
End Sub

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 36
Example 1: Output

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 37
Example: Form

lstAges

txtAvgAge

lstAges is filled at design time with the ages of the


first 44 U.S. presidents when taking office.
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 38
Example: Code
Private Sub btnCalculate_Click(...) Handles _
btnCalculate.Click
'Calculate average age of presidents when
assuming office
Dim n As Integer = lstAges.Items.Count
Dim sum As Double = 0
For i As Integer = 0 To (n – 1)
sum += CDbl(lstAges.Items(i))
Next
txtAvgAge.Text = (sum / n).ToString("N")
End Sub
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 39
Example: Output

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 40
Searching an Ordered List of
Strings
• A search often can be terminated earlier
if the list is sorted.
• This is particularly the case when the
sought-after item is not in the list. The
search can be terminated when an item
is reached that follows the sought-after
item lexicographically.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 41
Flags
• A flag is a variable that keeps track of
whether a certain situation has occurred.
• The data type most suited to flags is
Boolean.
• Used in a loop to provides information to
be used after loop terminates. Or, allows
for the early termination of the loop.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 42
Searching an Unsorted List

• A flag is used to indicate whether or not


the sought-after item has been found.
• The flag variable is initially set to False
and then set to True if and when the item
is found.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 43
More About Flags
When flagVar is a variable of Boolean
type, the statements
If flagVar = True Then
and
If flagVar = False Then
can be replaced by
If flagVar Then
and
If Not flagVar Then
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 44
More About Flags (continued)

The statements
Do While flagVar = True
and
Do While flagVar = False
can be replaced by
Do While flagVar
and
Do While Not flagVar
© 2017 Pearson Education, Inc.
Hoboken, NJ. All rights reserved. 45
Counters and Accumulators

• A counter is a numeric variable that


keeps track of the number of items that
have been processed.
• An accumulator is a numeric variable
that totals numbers.

© 2017 Pearson Education, Inc.


Hoboken, NJ. All rights reserved. 46

You might also like