Programming Logic and Design Fifth Edition, Comprehensive Chapter 5 Looping Objectives • • • • Learn about the advantages of looping Control loops with counters and sentinel values Nest loops Learn to avoid common loop mistakes Programming Logic and Design, Fifth Edition, Comprehensive 2 Objectives (continued) • Use a for loop • Use posttest loops • Recognize the characteristics shared by all loops • Learn about common loop applications Programming Logic and Design, Fifth Edition, Comprehensive 3 Understanding the Advantages of Looping • Looping makes computer programming efficient and worthwhile • Write one set of instructions to operate on multiple, separate sets of data • Loop: structure that repeats actions while some condition continues Programming Logic and Design, Fifth Edition, Comprehensive 4 Understanding the Advantages of Looping (continued) Figure 5-1 The while loop Programming Logic and Design, Fifth Edition, Comprehensive 5 Controlling Loops with Counters and Sentinel Values • As long as a Boolean expression remains true, while loop’s body executes • Must control number of repetitions to avoid an infinite loop • Repetitions controlled by – Counter – Sentinel value Programming Logic and Design, Fifth Edition, Comprehensive 6 Using a Definite while Loop with a Counter • Three actions make a while loop end correctly: – Loop control variable is initialized • Prior to entering the loop – Loop control variable is tested • If result is true, loop body entered – Loop control variable must be altered in loop body • while expression eventually evaluates to false • Loop control variables altered by: – Incrementing – Decrementing Programming Logic and Design, Fifth Edition, Comprehensive 7 Using a Definite while Loop with a Counter (continued) Figure 5-2 A while loop that prints “Hello” four times Programming Logic and Design, Fifth Edition, Comprehensive 8 Using a Definite while Loop with a Counter (continued) • Definite loop: number of iterations predetermined – Also called counted loop • Counter: numeric variable used to count number of times an event occurs • Loop control variable may be altered by user input • Indefinite loop: loop iterates until some condition is true – Number of iterations may vary Programming Logic and Design, Fifth Edition, Comprehensive 9 Using an Indefinite while Loop with a Sentinel Value • Indefinite loop: loop performed a different number of times each time the program executes • Three crucial steps: – Starting value to control the loop must be provided – Comparison must be made using the value that controls the loop – Within the loop, value that controls the loop must be altered • Loop control variable: any variable that determines whether the loop will continue Programming Logic and Design, Fifth Edition, Comprehensive 10 Figure 5-3 Looping bank balance program Programming Logic and Design, Fifth Edition, Comprehensive 11 Using an Indefinite while Loop with a Sentinel Value (continued) Figure 5-4 Typical execution of the looping bank balance program Programming Logic and Design, Fifth Edition, Comprehensive 12 Using an Indefinite while Loop with a Sentinel Value (continued) Figure 5-5 Crucial steps that must occur in every loop Programming Logic and Design, Fifth Edition, Comprehensive 13 Nested Loops • • • • Nested loops: loops within loops Outer loop: loop that contains the other loop Inner loop: loop that is contained Needed when values of two (or more) variables repeat to produce every combination of values Programming Logic and Design, Fifth Edition, Comprehensive 14 Figure 5-7 Flowchart and pseudocode for AnswerSheet program Programming Logic and Design, Fifth Edition, Comprehensive 15 Mixing Constant and Variable Sentinel Values • Number of times a loop executes can depend on a constant or a value that varies • May not want to repeat every pass through a loop the same number of times • Example: – Print 100 labels for every employee • Outer loop controlled by value of employee name • Inner loop executes 100 times – Print variable number of labels for every employee • Outer loop controlled by value of employee name • Inner loop controlled by production level Programming Logic and Design, Fifth Edition, Comprehensive 16 Mixing Constant and Variable Sentinel Values (continued) Figure 5-8 Program that produces 100 labels for every employee Programming Logic and Design, Fifth Edition, Comprehensive 17 Mixing Constant and Variable Sentinel Values (continued) Figure 5-8 Program that produces 100 labels for every employee (continued) Programming Logic and Design, Fifth Edition, Comprehensive 18 Figure 5-9 Program that produces a variable number of labels for every employee Programming Logic and Design, Fifth Edition, Comprehensive 19 Avoiding Common Loop Mistakes • Neglecting to initialize the loop control variable • Neglecting to alter the loop control variable • Using the wrong comparison with the loop control variable • Including statements inside the loop that belong outside the loop Programming Logic and Design, Fifth Edition, Comprehensive 20 Avoiding Common Loop Mistakes (continued) • Mistake: neglecting to initialize the loop control variable – Example: get name statement removed • Value of name unknown or garbage • Program may end before any labels printed • 100 labels printed with an invalid name – labelCounter = 0 statement removed • Value of labelCounter unpredictable • Loop might not execute • If automatically initialized to zero, only first labels printed Programming Logic and Design, Fifth Edition, Comprehensive 21 Figure 5-10 Incorrect logic when loop control variable initializations are removed from label-making program Programming Logic and Design, Fifth Edition, Comprehensive 22 Avoiding Common Loop Mistakes (continued) Figure 5-10 Incorrect logic when loop control variable altering statements are removed from label-making program (continued) Programming Logic and Design, Fifth Edition, Comprehensive 23 Avoiding Common Loop Mistakes (continued) • Mistake: neglecting to alter the loop control variable – Remove get name instruction from outer loop • User never enters a name after the first one • Inner loop executes infinitely – Remove the statement that increments labelCounter • Inner loop executes infinitely • Always incorrect to create a loop that cannot terminate Programming Logic and Design, Fifth Edition, Comprehensive 24 Avoiding Common Loop Mistakes (continued) • Mistake: using the wrong comparison with the loop control variable – Programmers must use correct comparison – Off-by-one error – Seriousness depends on actions performed within a loop • Overcharge insurance customer by one month • Overbook a flight on airline application • Dispense extra medication to patients in pharmacy Programming Logic and Design, Fifth Edition, Comprehensive 25 Avoiding Common Loop Mistakes (continued) • Example: – Correct: loop performed 10 times counter = 0 while counter < 10 print “Hello” counter = counter + 1 end while Programming Logic and Design, Fifth Edition, Comprehensive 26 Avoiding Common Loop Mistakes (continued) • Example (continued): – Error: loop performed 11 times counter = 0 while counter <= 10 print “Hello” counter = counter + 1 end while Programming Logic and Design, Fifth Edition, Comprehensive 27 Avoiding Common Loop Mistakes (continued) • Mistake: including statements inside the loop that belong outside the loop – Example: calculating a user’s projected weekly pay raise • Value of weeklyPay recalculated on every pass through the loop, although it does not change • Inefficient, especially for complicated calculations or large numbers of calculations Programming Logic and Design, Fifth Edition, Comprehensive 28 Figure 5-12 Pay rate projection program Programming Logic and Design, Fifth Edition, Comprehensive 29 Figure 5-14 Improved pay rate projection program Programming Logic and Design, Fifth Edition, Comprehensive 30 Using a for Loop • for statement or for loop is a definite loop • Provides three actions in one structure – Initializes – Evaluates – Increments • Takes the form: for initialValue to finalValue do something endfor Programming Logic and Design, Fifth Edition, Comprehensive 31 Using a for Loop (continued) • Example: for count = 0 to 99 print LABEL_TEXT, name endfor • Initializes count to 0 • Checks count against the limit value 99 • If evaluation is true, for statement body prints the label • Increases count by 1 Programming Logic and Design, Fifth Edition, Comprehensive 32 Using a for Loop (continued) • while statement could be used in place of for statement • Step value: number used to increase a loop control variable on each pass through a loop – Programming languages can: • Require a statement that indicates the step value • Have a step value default of 1 • Specify step value when each pass through the loop changes the loop control variable by value other than 1 Programming Logic and Design, Fifth Edition, Comprehensive 33 Using Posttest Loops • Loop body may never execute in while loop and for loop • Use posttest loop when loop body must execute at least once – do-until loop – do-while loop • do-until loop executes until condition is true • do-while loop executes until condition is false Programming Logic and Design, Fifth Edition, Comprehensive 34 Using Posttest Loops (continued) Figure 5-15 Inner loop from label production program in Figure 5-9 Programming Logic and Design, Fifth Edition, Comprehensive 35 Using Posttest Loops (continued) Figure 5-16 Label production program using a do-until loop Programming Logic and Design, Fifth Edition, Comprehensive 36 Recognizing the Characteristics Shared by All Loops • Every logical problem could be solved using only the while loop – Other forms are conveniences • while loop – Loop-controlling question placed at beginning of steps that repeat • do-until loop – Loop-controlling question placed at end of steps that repeat Programming Logic and Design, Fifth Edition, Comprehensive 37 Recognizing the Characteristics Shared by All Loops (continued) • Characteristics of all structured loops: – Loop-controlling question must provide entry or exit from repeating structure – Loop-controlling question provides the only entry to or exit from the repeating structure • Exactly one loop-controlling value – Provides only entry to or exit from the loop Programming Logic and Design, Fifth Edition, Comprehensive 38 Recognizing the Characteristics Shared by All Loops (continued) Figure 5-17 Examples of unstructured loops Programming Logic and Design, Fifth Edition, Comprehensive 39 Common Loop Applications • Using a loop to accumulate totals – Examples: • Business reports often include totals • Telephone bill provides a total • List of real estate sold and total value • Accumulator: variable that gathers values – Similar to a counter • Counter increments by one • Accumulator increments by some value Programming Logic and Design, Fifth Edition, Comprehensive 40 Common Loop Applications (continued) • Accumulate total real estate prices – – – – – Declare numeric variable at beginning Initialize the accumulator to 0 Read each transaction’s data record Add its value to accumulator variable Read the next record until eof • Variables exist only for the life of the application – Run the application a second time, variables occupy different memory location Programming Logic and Design, Fifth Edition, Comprehensive 41 Common Loop Applications (continued) Figure 5-18 Month-end real estate sales report Programming Logic and Design, Fifth Edition, Comprehensive 42 Figure 5-19 Flowchart and pseudocode for real estate sales report program Programming Logic and Design, Fifth Edition, Comprehensive 43 Common Loop Applications (continued) • Using a loop to validate data – When prompting a user for data, no guarantee that data is valid • Validate data: make sure data falls in acceptable ranges • Example: user enters birth month – If number less than 1 or greater than 12 • Display error message and stop the program • Assign default value for the month • Reprompt the user for valid input Programming Logic and Design, Fifth Edition, Comprehensive 44 Common Loop Applications (continued) Figure 5-20 Reprompting a user once after an invalid month is entered Programming Logic and Design, Fifth Edition, Comprehensive 45 Common Loop Applications (continued) Figure 5-21 Reprompting a user continuously after an invalid month is entered Programming Logic and Design, Fifth Edition, Comprehensive 46 Summary • When using a loop, write one set of instructions that operates on multiple, separate data • Three steps must occur in every loop: – Initialize loop control variable – Compare variable to some value – Alter the variable that controls the loop • Nested loops: loops within loops • Nested loops maintain two individual loop control variables – Alter each at the appropriate time Programming Logic and Design, Fifth Edition, Comprehensive 47 Summary (continued) • Common mistakes made by programmers: – – – – Neglecting to initialize loop control variable Neglecting to alter loop control variable Using wrong comparison with loop control variable Including statements inside the loop that belong outside the loop • Most computer languages support a for statement • for loop used with definite loops – When number of iterations is known Programming Logic and Design, Fifth Edition, Comprehensive 48 Summary (continued) • for loop automatically: – Initializes – Evaluates – Increments • Use posttest loop when loop body must execute at least one time – Control variable evaluated after loop body executes Programming Logic and Design, Fifth Edition, Comprehensive 49 Summary (continued) • Characteristics of all structured loops: – Loop-controlling question provides entry or exit from repeating structure – Loop-controlling question provides the only entry or exit from repeating structure • Accumulator: variable that gathers values • Loops used to ensure user data is valid by reprompting the user Programming Logic and Design, Fifth Edition, Comprehensive 50
© Copyright 2026 Paperzz