3.2 Nested Loops

Download Report

Transcript 3.2 Nested Loops

3.2 Iteration Loops
Nested Loops
&
The Step Parameter
31/03/2016
1
Learning Objectives
State what the step parameter is used for.
State the general form of a nested For …
To … Next iteration loop.
How to output to the same line rather than
always to a new line.
How to start an empty new line.
State how to enter spaces.
Explain what constants are and their
advantages.
31/03/2016
2
For … To … Next
e.g. Display the numbers from 1, 3, 5, 7, 9


Dim Number As Integer
For Number = 1 To 10 Step 2
lblNumber.Text = Number

Next Number
Note:

This loop will not display 11 as it is bigger
than the 10 allowed
31/03/2016
3
A nested For … To … Next
Iteration Loop
When you have one loop inside another.
Think of the outer loop as a large cog driving a
smaller cog which is the inner loop.
Every time the larger cog revolves once (one
repetition of the outer loop), the inner cog
usually revolves more than once.
As a solid real life example think of the second
and minute hand.


The minute hand would be the outer loop.
The second hand would be the inner loop.
31/03/2016
4
General Form of a nested For …
To … Next Iteration Loop
O
u
t
e
r
L
o
o
p
For (variable identifier = start value) To (end value)
I
n
n
e
r
L
o
o
p
31/03/2016

(Outer loop body statements) …

For (variable identifier = start value) To (end value)
(Inner loop body statements) …

Next (variable identifier)

(Outer loop body statements) …
Next (variable identifier)
5
A nested For … To … Next
Iteration Loop
Dim OuterNumber As Integer
Dim InnerNumber As Integer
For OuterNumber = 1 To 4


Console.WriteLine(“OuterNumber variable is ” &
OuterNumber)
For InnerNumber = 1 To 2
Console.WriteLine(“InnerNumber variable is ” &
InnerNumber)

Next InnerNumber
Next OuterNumber
31/03/2016
6
A nested For … To … Next
Iteration Loop
The previous slide’s code will produce:

OuterNumber variable is 1
InnerNumber variable is 1
InnerNumber variable is 2

OuterNumber variable is 2
InnerNumber variable is 1
InnerNumber variable is 2

OuterNumber variable is 3
InnerNumber variable is 1
InnerNumber variable is 2

OuterNumber variable is 4
InnerNumber variable is 1
InnerNumber variable is 2
31/03/2016
7
Constants
Used when:


The user does not provide the value.
You don’t want the value to change during the
program.
e.g. Const TaxRate = 0.25
If you try to assign another value to a
constant later in the program an error will
occur.
31/03/2016
8
Constants
Using a constant rather than a number
presents two advantages:


It allows the value to be changed by the
programmer easily i.e. otherwise the
programmer would have to go through and
change the value every time it occurs.
It makes the code more meaningful to anybody
reading it.
31/03/2016
9
To output to the same line /
Create a new empty line / Display
Multiple Spaces:
Console.Write(“….”)

Will output onto the same previous line so basically
continues a line of outputs.
If no previous line then it will output onto a line but without
creating a new one.
Console.WriteLine()

Will start a new empty line.
To enter spaces:

Space(number)
Program 3.2a Addition Table
Specification:

Write a program to display the sum of row and
column numbers.
31/03/2016
11
Program 3.2a Addition Table
Create a new project named ‘Addition
Table’.
31/03/2016
12
Program 3.2a Addition Table
Const Max = 5
Dim ColNumber As Integer
Dim RowNumber As Integer
Dim Sum As Integer
'Display '+' and '12' spaces in top right corner to start table.
Console.Write("+" & Space(12) )
For ColNumber = 0 To Max 'Simple For ... To ... Next loop


'Enter column numbers with 8 spaces in between.
Console.Write(ColNumber & Space(8))
Next ColNumber
31/03/2016
Continued on next slide.
13
Program 3.2a Addition Table
Console.WriteLine() ’Start a new empty line.
For RowNumber = 0 To Max 'Start outer loop.



'Enter first number in the row.
Console.Write(RowNumber & Space(12))
For ColNumber = 0 To Max 'Start of inner loop.
Sum = ColNumber + RowNumber
'Enter addition
Console.Write(Sum & Space(8))


Next ColNumber 'End of inner loop.
Console.WriteLine() ’Start a new empty line.
Next RowNumber 'End of outer loop.
31/03/2016
14
Program 3.2a Multiplication Table
Run the program and test it.
31/03/2016
15
Given pseudocode will use the
following structure:
FOR <identifier> ← <value1> TO <value2> STEP <value3>

<statement(s)>
ENDFOR
Extension “Multiplication” Program 3.2b
Write a program to produce the following multiplication
table.
Note you will have a problem with columns due to
numbers >99.

Use an If …Then … End If statement to add less spaces when
necessary.
Please note that
I actually don’t
expect you to
fully solve this.
If you can then
great otherwise
spend around 15
minutes and then
just send me
what you have.
31/03/2016
17
The Step Parameter
Used to change the variable identifier in a
For … To … Next iteration loop by something
other than +1.
For (variable identifier = start value) To (end value) Step (increment value)

(Loop Body statements) …
Next (variable identifier)
31/03/2016
18
Extension “Between Two Numbers” Program 3.2c
Extend the “Between Two Numbers” Program from 3.1 For To Next
Loops so that it has a 2 options:
1. As before: to count up from a lower first number to a higher
second number.
2. Count down from a higher first number to a lower second
number.
Hints:





Ask the user for option 1 or 2, before the main code.
New If statement, just after this, to see which option has been chosen.
Leave the original main code for option 1.
Copy and paste the original main code into the ElseIf for option 2 and adjust
as necessary.
To count down write Step -1 at the end of the For … To … Step
-1
Extension:


31/03/2016
Show only numbers between the two values not the values themselves.
What happens if the second number is higher than the first number when this
new second button is clicked?
The loop does not end and results in what is called an infinite loop, resulting in VB
skipping the loop.
The new “second” option should not allow the second number to be higher than the
first number.
19
Plenary
What is the step parameter used for?

Used to increase the variable identifier in a
For … To … Next loop by more than 1.
31/03/2016
20
Plenary
O
u
t
e
r
L
o
o
p
What is the general form of a nested For … To
… Next loop?
 For (variable identifier = start value) To (end value)
(Outer loop body statements) …
I
n
n
e
r
L
o
o
p
For (variable identifier = start value) To (end value)

(Inner loop body statements) …
Next (variable identifier)
(Outer loop body statements) …

Next (variable identifier)
31/03/2016
21