Chapter 6: The Repetition Structure Programming with Microsoft Visual Basic .NET, Second Edition The Repetition Structure (Looping) Lesson A Objectives • 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 • Initialize and update counters and accumulators Programming with Microsoft Visual Basic .NET, Second Edition 2 The Repetition Structure • Use the repetition structure to repeatedly process one or more program instructions until some condition is met, at which time the repetition ends • The repetition structure is referred to as a loop Programming with Microsoft Visual Basic .NET, Second Edition 3 The Repetition Structure (continued) • Pretest loop: evaluation occurs before the instructions within the loop are processed • Posttest loop: evaluation occurs after the instructions within the loop are processed Programming with Microsoft Visual Basic .NET, Second Edition 4 The For…Next Loop • Use the For…Next statement to code a loop that repeats for a specific number of times Figure 6-2: Syntax and examples of the For...Next statement Programming with Microsoft Visual Basic .NET, Second Edition 5 The For…Next Loop (continued) Figure 6-2: Syntax and examples of the For...Next statement (continued) Programming with Microsoft Visual Basic .NET, Second Edition 6 The For…Next Loop (continued) • counter is a numeric variable that keeps track of how many times the loop instructions are repeated • startvalue, endvalue, and stepvalue – Must be numeric – Can be positive or negative, integer or non-integer – Default stepvalue is 1 Programming with Microsoft Visual Basic .NET, Second Edition 7 The For…Next Loop (continued) Figure 6-4: Pseudocode and flowchart for the first example shown in Figure 6-2 Programming with Microsoft Visual Basic .NET, Second Edition 8 The For…Next Loop (continued) For…Next loop examples: Dim count As Integer For count = 0 to 3 Step 1 Debug.WriteLine(count) Next count Dim count As Integer For count = 3 to 0 Step -1 Debug.WriteLine(count) Next count Dim count As Integer For count = 0 to 10 Step 2 Debug.WriteLine(count) Next count Dim loc As Single For loc = 0.5 To 15 Step 0.5 Debug.WriteLine(loc) Next loc Programming with Microsoft Visual Basic .NET, Second Edition 9 The Do…Loop Statement • 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 Programming with Microsoft Visual Basic .NET, Second Edition 10 The Do…Loop Statement (continued) Figure 6-7: Syntax and examples of the Do...Loop statement Programming with Microsoft Visual Basic .NET, Second Edition 11 The Do…Loop Statement (continued) Figure 6-7: Syntax and examples of the Do...Loop statement (continued) Programming with Microsoft Visual Basic .NET, Second Edition 12 The Do…Loop Statement (continued) Figure 6-9: Flowcharts for the examples shown in Figure 6-7 Programming with Microsoft Visual Basic .NET, Second Edition 13 The Do…Loop Statement (continued) Figure 6-9: Flowcharts for the examples shown in Figure 6-7 (continued) Programming with Microsoft Visual Basic .NET, Second Edition 14 Using Counters and Accumulators • Counters and accumulators are used within a repetition structure to calculate subtotals, totals, and averages • 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 and is updated by an amount that varies Programming with Microsoft Visual Basic .NET, Second Edition 15 Using Counters and Accumulators (continued) • Initializing: assigning a beginning value to the counter or accumulator • Updating (incrementing): adding a number to the value stored in the counter or accumulator Programming with Microsoft Visual Basic .NET, Second Edition 16 Nested Repetition Structures Lesson B Objectives • Nest repetition structures Programming with Microsoft Visual Basic .NET, Second Edition 17 Nesting Repetition Structures • In a nested repetition structure, one loop, referred to as the inner loop, is placed entirely within another loop, called the outer loop • A clock uses nested loops to keep track of the time Programming with Microsoft Visual Basic .NET, Second Edition 18 Nesting Repetition Structures (continued) Figure 6-16: Nested loops used by a clock Programming with Microsoft Visual Basic .NET, Second Edition 19 The Grade Calculator Application • Professor Arkins needs an application that allows him to assign a grade to any number of students • Each student’s grade is based on three test scores, with each test worth 100 points • The application should total the test scores and then assign the appropriate grade, using the table shown on the next slide Programming with Microsoft Visual Basic .NET, Second Edition 20 The Grade Calculator Application (continued) Total points earned Grade 270–300 A 240–269 B 210–239 C 180–209 D below 180 F Programming with Microsoft Visual Basic .NET, Second Edition 21 The Grade Calculator Application (continued) • uiAssignGradeButton’s Click event procedure – Allows Professor Arkins to enter each student’s test scores, and then assign the appropriate grade – Contains two loops, one nested within the other – A For...Next statement controls the inner loop Programming with Microsoft Visual Basic .NET, Second Edition 22 The Grade Calculator Application (continued) • uiAssignGradeButton’s Click event procedure (continued) – A Do...Loop statement controls the outer loop – The inner loop is a pretest loop – The outer loop is a posttest loop Programming with Microsoft Visual Basic .NET, Second Edition 23 The Grade Calculator Application (continued) Figure 6-20: Sample run of the application that contains the procedure Programming with Microsoft Visual Basic .NET, Second Edition 24 Coding the Shoppers Haven Application Lesson C Objectives • Select the existing text in a text box • Prevent a form from closing Programming with Microsoft Visual Basic .NET, Second Edition 25 Shoppers Haven • The manager of Shoppers Haven wants an application that the store clerks can use to calculate the discounted price of an item, using discount rates from 10% through 30% in increments of 5% • The clerks will enter the item’s original price • The application should display the discount rates and the discounted prices in the interface Programming with Microsoft Visual Basic .NET, Second Edition 26 Shoppers Haven (continued) Figure 6-21: User interface for the Shoppers Haven application Programming with Microsoft Visual Basic .NET, Second Edition 27 Shoppers Haven (continued) Figure 6-22: TOE chart for the Shoppers Haven application Programming with Microsoft Visual Basic .NET, Second Edition 28 Shoppers Haven (continued) Figure 6-23: Pseudocode for the Calculate button’s Click event procedure Programming with Microsoft Visual Basic .NET, Second Edition 29 Shoppers Haven (continued) Figure 6-27: Discounted prices shown in the Shoppers Haven application Programming with Microsoft Visual Basic .NET, Second Edition 30 Selecting the Existing Text in a Text Box • Use the SelectAll method to select all of the text contained in a text box • Syntax: textbox.SelectAll() • textbox is the name of the text box whose text you want to select Programming with Microsoft Visual Basic .NET, Second Edition 31 Selecting the Existing Text in a Text Box (continued) • Enter the SelectAll method in a text box control’s Enter event • A text box control’s Enter event occurs when the user tabs to the control, and when the Focus method is used in code to send the focus to the control • The uiOriginalTextBox control’s Enter event is responsible for highlighting the existing text in the control Programming with Microsoft Visual Basic .NET, Second Edition 32 Selecting the Existing Text in a Text Box (continued) Figure 6-29: Text selected in the Shoppers Haven application Programming with Microsoft Visual Basic .NET, Second Edition 33 Coding the TextChanged Event Procedure • A control’s TextChanged event occurs when the contents of a control’s Text property change • Use the uiOriginalTextBox’s TextChanged event to clear the contents of the uiDiscPricesLabel when the user changes the original price Programming with Microsoft Visual Basic .NET, Second Edition 34 Coding the ShoppersForm’s Closing Event Procedure • A form’s Closing event occurs when a form is about to be closed • In the Shoppers Haven application, the Closing event procedure is responsible for: – Verifying that the user wants to exit the application – Taking an action based on the user’s response Programming with Microsoft Visual Basic .NET, Second Edition 35 Coding the ShoppersForm’s Closing Event Procedure (continued) Figure 6-31: Pseudocode for the ShoppersForm’s Closing event procedure Programming with Microsoft Visual Basic .NET, Second Edition 36 Coding the ShoppersForm’s Closing Event Procedure (continued) Figure 6-33: Message box displayed by the form’s Closing event Programming with Microsoft Visual Basic .NET, Second Edition 37 Summary • Repetition structure (loop): the computer repeats a set of instructions until some condition is met • Code a repetition structure in Visual Basic .NET using one of the following statements: For...Next, Do...Loop, and For Each…Next • The For...Next statement is pretest loops only • The Do...Loop statement can code pretest and posttest loops Programming with Microsoft Visual Basic .NET, Second Edition 38 Summary (continued) • To use a counter or accumulator: – Initialize, if necessary – Update using an assignment statement in a repetition structure • To nest a repetition structure, place the entire inner loop within the outer loop Programming with Microsoft Visual Basic .NET, Second Edition 39 Summary (continued) • To process code when the user tabs to a control, or when the Focus method is used in code to send the focus to the control, enter the code in the control’s Enter event procedure • To process code when a form is about to be closed, enter the code in the form’s Closing event procedure Programming with Microsoft Visual Basic .NET, Second Edition 40