330 likes | 346 Views
Chapter 6. Repetition. Types of LOOP Structures. Do While ……. Loop Do Until …… Loop For …… Next loop. Basic Definition. Looping : the process of repeating a series of statements as many times as needed. Looping also called iteration. Basic Components of Loops.
E N D
Chapter 6 Repetition Chapter 6 - Visual Basic Schneider
Types of LOOP Structures • Do While ……. Loop • Do Until …… Loop • For …… Next loop Chapter 6 - Visual Basic Schneider
Basic Definition • Looping : the process of repeating a series of statements as many times as needed. • Looping also called iteration. Chapter 6 - Visual Basic Schneider
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 Chapter 6 - Visual Basic Schneider
The Do While ……. Loop Do Whilecondition is true statement(s) Loop Chapter 6 - Visual Basic Schneider
Flowchart for a Do While Loop Is the condition true No Yes Execute statements within the loop Execute statements that follow the loop Chapter 6 - Visual Basic Schneider
Example (Displays the numbers from 1 through 10) Private Sub cmdDisplay_Click() Dim intNum As Integer ' Display the numbers from 1 to 10 intNum = 1 Do While intNum <= 10 picNumbers.Print intNum; intNum = intNum + 1 Loop End Sub Chapter 6 - Visual Basic Schneider
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. Chapter 6 - Visual Basic Schneider
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. Chapter 6 - Visual Basic Schneider
Example of event-controlled loops strPassWord = "" Do While strPassWord<> "SHAZAM" strPassWord = UCase(InputBox("What is the password?")) Loop Chapter 6 - Visual Basic Schneider
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. Chapter 6 - Visual Basic Schneider
Example num = 1 Do While num <= 10 picOutput.Print num; num = num + 1 Loop Chapter 6 - Visual Basic Schneider
Do Until ……. Loop • Is executed until the condition becomes True • Any Do While…. Loop can be rewritten as a Do Until ….. Loop Chapter 6 - Visual Basic Schneider
Example (requires the user to give a password before opening a file) Private Sub cmdDisplay_Click() Dim strPassWord As String, info As String If UCase(txtName.Text) = "SECRET.TXT" Then Do strPassWord = UCase(InputBox("What is the password?")) Loop UntilstrPassWord = "SHAZAM" End If Open txtName.Text For Input As #1 Input #1, info picItem.Cls picItem.Print info Close #1 End Sub Chapter 6 - Visual Basic Schneider
Example (years to deplete a saving account) Private Sub cmdEstimate_Click() Dim amt As Single, yrs As Integer ' Years to deplete savings account picResult.Cls amt = 15000 yrs = 0 Do amt = amt * 1.05 - 1000 yrs = yrs + 1 Loop Untilamt <= 0 picResult.Print "It takes"; yrs; "years to deplete the account." End Sub Chapter 6 - Visual Basic Schneider
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 Chapter 6 - Visual Basic Schneider
Counters and Accumulators • A Counter is a numeric variable that keeps track of the number of items that have been processed in the loop. • An Accumulator is a numeric variable that totals numbers. Chapter 6 - Visual Basic Schneider
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." Close #1 End Sub Chapter 6 - Visual Basic Schneider
For ……... Next Loop • Is used to create a counting loop. • Loop control variable has an initial value. • Loop control variable has a terminating value. • Loop control variable has a Step value. Chapter 6 - Visual Basic Schneider
Syntax of For…… Next Loop For loop-control-variable = initial To terminal statement(s) Next loop-control-variable Chapter 6 - Visual Basic Schneider
Example ( display a table of the first 5 numbers and their square) Private Sub cmdDisplayTable_Click() Dim i As Integer ‘Display a table of the first 5 numbers and their sqares picTable.Cls For i = 1 To 5 picTable.Print i; i ^ 2 Next i End Sub Loop Control variable Terminating value Initial Value Chapter 6 - Visual Basic Schneider
Example ( step value of 2) Forcounter= 1 To 5 Step 2 picOutput.Print counter Next counter Chapter 6 - Visual Basic Schneider
When the For statement is first encountered This explanation assumes a positive step value • The initial, terminal, and (if given ) step value expression are evaluated. • The loop control variable is assigned to the initial value. Chapter 6 - Visual Basic Schneider
This explanation assumes a positive step value • The value of the loop control variable is tested against the terminal value. • If the loop control variable is less than or equal to the terminal value, the loop body is executed. • If the loop control variable is greater than the terminal value, the loop body is skipped, and control passes to the first statement following the Next. Chapter 6 - Visual Basic Schneider
When the Next statement is encountered • The step value is added to the loop control variable. If there is no step value, +1 is added. • A check is performed to determine if the value of the loop control variable exceeds the terminal value. Chapter 6 - Visual Basic Schneider
Continued • If the loop control variable is less than or equal to the terminal value, control transfers back to the statement after the Forstatement and the loop is repeated. • Otherwise, the loop is exited, and execution continues with the statement following the Next. Chapter 6 - Visual Basic Schneider
Rules for Using For ... Next loop • The initial, terminal, and step values cannot be modified in the loop body. • You should never modify the value of the loop control variable in the loop body. • Each For statement must end with a Next statement. Chapter 6 - Visual Basic Schneider
Example (display 10 stars) Private Sub cmdDisplay_Click() Dim i As Integer ' Display a row of ten stars picOutput.Cls For i = 1 To 10 picOutput.Print "*"; Next i End Sub Chapter 6 - Visual Basic Schneider
Example (request a number and display a row of that many stars) Private Sub cmdDisplay_Click() Dim i As Integer, stars As Integer ' Display a row of stars picOutput.Cls stars = Val(InputBox("Row length (1-20) : ")) For i = 1 To stars picOutput.Print "*"; Next i End Sub Chapter 6 - Visual Basic Schneider
Example (the step value is negative) For Counter 8 To 1 Step -2 picOutput.Print Counter Next Counter Chapter 6 - Visual Basic Schneider
Nested Loops For Outer = 1 To 4 ForInner = 1 To 2 .. .. Next Inner Next Outer Chapter 6 - Visual Basic Schneider
Example (display a 10 by 10 array of stars) Private Sub cmdDisplay_Click() Dim i As Integer, j As Integer ' Display 10 x 10 square of stars For i = 1 To 10 For j = 1 To 10 picOutput.Print "*"; Next j picOutput.Print Next i End Sub Chapter 6 - Visual Basic Schneider
Guidelines for Choosing a Loop: • If counting loop, use a For…… Next Loop. • If trailer-values and body is executed at least once, use Do Until….. Loop. • If trailer-value and nothing is known about the first execution, use Do While…. Loop. • If you are not sure use Do While….. Loop. Chapter 6 - Visual Basic Schneider