types of loop structures do while ……. loop do until …… loop for …… next loop
Post on 20-Dec-2015
247 views
TRANSCRIPT
Types of LOOP Structures
Do While ……. Loop Do Until …… Loop For …… Next loop
Basic Definition
Looping: the process of repeating a series of statements multiple times until a criteria is met
Basic Components of Loops
Loop control variable: A variable used to determine whether a loop will be executed
Loop body: The statement (s) that are executed each time a loop repeats
The Do While ……. Loop
Do While condition is true
statement(s)
Loop
Flowchart for a Do While Loop
Is the condition true
Execute statementswithin
the loop
Execute statementsthat follow the loop
Yes
No
Example
What is the output?
Output (Displays the numbers from 1 through 10)
The Do While ……. Loop
Is executed as long as the condition is True. If condition is False then the next statement
after the Loop is executed.
Controlling Loops
Methods of controlling loops:Counter-controlled loops
• repeat a specific number of times
Event-controlled loops• repeat until something happens in the loop
body to change the value of loop control variable.
Example of event-controlled loops
strPassWord = ""
Do While strPassWord <> “BIS"
strPassWord = UCase(InputBox("What is the password?"))
Loop
Counter-controlled Loops
Is useful when the programmer knows how many times the loop should be executed.
Initialize the counter by setting it to a beginning value before entering the loop.
The counter is incremented (or decremented) by the same value during each repetition.
Example
intNum = 1
Do While intNum <= 10
picOutput.Print num;
intNum = intNum + 1
Loop
Do Until ……. Loop
Is executed until the condition becomes True
Any Do While…. Loop can be rewritten as a Do Until ….. Loop
$15000 is deposited at 5% interest. If $1000 years to deplete a saving account) is withdrawn at the end of each year, how many years will it take to empty the account?
Comparing While… and Until Loops The Do While … Loop executes while the
condition is true The Do Until….. Loop executes until the
condition is true Both can be used to create any type of loop
EOF Function
EOF(n) is True if the end of the file having reference number n has been reached. Otherwise, it is False
Example: Open “PHONE.TXT” for Input As #1Do While Not EOF(1) Input #1, nom, phoneNum picOutput.Print nom, phoneNumLoopClose #1
Counters and Accumulators
A counter is a numeric variable that keeps track of the number of items that have been processed in a loop.
An accumulator is a numeric variable that holds a sub-total during multiple passes through a loop.
Example: Counter & Accumulator
Private Sub cmdAnalyze_Click() Dim numCoins As Integer, sum As Single, value As Single Open "COINS.TXT" For Input As #1 numCoins = 0 sum = 0 Do While Not EOF(1) Input #1, value numCoins = numCoins + 1 sum = sum + value Loop picValue.Print "The value of the"; numCoins; "coins is"; sum;
"cents."End Sub
For … Next Loop
A loop where the number of iterations is determined by a range of values for a numeric variable
Syntax:
For controlVariable = initial To terminal
statement(s)
Next controlVariable
Example
Private Sub cmdDisplayTable_Click()
Dim i As Integer
‘Display a table of the first 5 numbers and their squares
For i = 1 To 5
picTable.Print i; i ^ 2
Next i
End Sub
Initial Value
Control variable
Terminating value
Example
Dim numVar As Integer
For numVar = 1 To 5 Step 2
picOutput.Print numVar;
Next numVar
Output: 1 3 5
When a For statement is encountered
The control variable is assigned the initial value.
After each loop iteration, the step value is added to the value of the control variable. (If there is no step value, 1 is added.)
Iteration continues until the terminating value is exceeded.
Rules for Using For ... Next loop
You should never modify the value of the loop control variable in the loop body.
Each For loop must end with a Next statement.
Example
Private Sub cmdDisplay_Click()
Dim i As Integer
For i = 1 To 10
picOutput.Print "*";
Next i
End Sub
Output: **********
Example
Private Sub cmdDisplay_Click() Dim i As Integer, stars As Integer stars = Val(InputBox("Row length (1-
20) : ")) For i = 1 To stars picOutput.Print "*"; Next iEnd Sub
Example
Dim numVar As Integer
For numVar = 8 To 1 Step -2
picOutput.Print numVar;
Next numVar
Output: 8 6 4 2
Nested Loops
For outer = 1 To 4
For inner = 1 To 2
..
..
Next inner
Next outer
Example: Display a 10x10 rectangle of stars
Private Sub cmdDisplay_Click()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 10
picOutput.Print "*";
Next j
picOutput.Print
Next i
End Sub