1 / 49

Looping

6. Looping. Programming Logic and Design, Second Edition, Comprehensive. Objectives. After studying Chapter 6, you should be able to: Understand the advantages of looping Control a while loop using a loop control variable Increment a counter to control a loop

mavis
Télécharger la présentation

Looping

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6 Looping Programming Logic and Design, Second Edition, Comprehensive Chapter 6

  2. Objectives • After studying Chapter 6, you should be able to: • Understand the advantages of looping • Control a while loop using a loop control variable • Increment a counter to control a loop • Loop with a variable sentinel value • Control a loop by decrementing a loop control variable Chapter 6

  3. Objectives • After studying Chapter 6, you should be able to: • Avoid common loop mistakes • Use a for loop • Use a do until loop • Recognize the characteristics shared by all loops • Nest loops • Use a loop to accumulate totals Chapter 6

  4. Understanding the Advantages of Looping • If making decisions is what makes computers seem intelligent, it’s looping that makes computer programming worthwhile • When you use a loop within a computer program, you can write one set of instructions that operates on multiple, separate sets of data • The advantages of having a computer perform payroll calculations is that all of the deduction instructions need to be written only once and can be repeated over and over again using a loop, (the structure that repeats actions while some condition continues) Chapter 6

  5. Using a While Loop with a Loop Control Variable • You learned previously that almost every program has a main loop, or a basic set of instructions that are repeated for every record • The main loop is a typical loop—within it you write one set of instructions that executes repeatedly while records continue to be read from an input file • In addition to this main loop, loops also appear within subroutines Chapter 6

  6. The while Loop Chapter 6

  7. Printing Four Warning Messages in Sequence Chapter 6

  8. Printing Four Warning Messages in a Loop Chapter 6

  9. Using a While Loop with a Loop Control Variable • The flowchart segment in Figure 6-3 shows three steps that must occur in every loop: • You must initialize a variable that will control the loop. The variable in this case is named rep • You must compare the variable to some value that stops the loop. In this case you compare rep to the value 5 • Within the loop, you must alter the variable. In this case, you alter rep by adding one to it Chapter 6

  10. Using a While Loop with a Loop Control Variable • On each pass through the loop, the value in the rep variable determines whether the loop will continue • Therefore variables like rep are known as loop control variables • Any variable that determines whether a loop will continue is a loop control variable • To stop a loop, you compare the loop control value to a sentinel value (also known as a limit, or ending value) Chapter 6

  11. Using a While Loop with a Loop Control Variable • The decision that controls every loop is always based on a Boolean comparison • The statements that execute within a loop are known as the loop body • The body of the loop might contain any number of statements, including subroutine calls, decisions, and other loops • Your program can leave a structured loop only at the comparison that tests the loop control variable Chapter 6

  12. Using a Counter to Control Looping • Suppose you own a factory and have decided to place a label on every product you manufacture • The label contains the words “Made for you Personally by” followed by the first name of one of your employees • For one week’s production, you need 100 personalized labels for each employee • Assume you already have a personnel file that can be used for input Chapter 6

  13. Using a Counter to Control Looping • This file has more information than you’ll need for this program: an employee last name, first name, Social Security number, address, date hired, and salary • The important feature of the file is that it does contain each employee’s name stored in a separate record Chapter 6

  14. Mainline Logic for Label Program Chapter 6

  15. Using a Counter to Control Looping • The first task for the label program involves naming the fields on the input record so you can refer to them within the program • You also can set up a variable to hold the characters “Made for you personally by” and name it labelLine • You will need one more variable: a location called a counter • A counter is any numeric variable you use to count the number of times an event has occurred Chapter 6

  16. Using a Counter to Control Looping • Each time you read an employee record, the counter variable is set to zero • Then every time a label is printed, you add one to the counter • Adding one to a variable is called incrementing the variable • The housekeep() routine for the label program, shown in Figure 6-6, includes a step to open the files: the employee file and the printer Chapter 6

  17. housekeep() Module for Label Program Chapter 6

  18. Using a Counter to Control Looping • When housekeep() is done, the logical flow returns to the eof question in the mainline • The mainLoop() of this label program contains three parts: • Set the labelCounter to 0 • Compare the labelCounter to 100 • While the labelCounter is less than 100, print the labelLine and the inFirstName, and add one to the labelCounter Chapter 6

  19. mainLoop() for Label Program Chapter 6

  20. finishUp() Module for Label Program Chapter 6

  21. Looping with a Variable Sentinel Value • Sometimes you don’t want to be forced to repeat every pass through a loop the same number of times • To write a program that produces an appropriate number of labels for each employee, you can make some minor modifications to the original label-making program Chapter 6

  22. Looping with a Variable Sentinel Value • The major modification to the original label-making program is in the question that controls the label-producing loop • Instead of asking if labelCounter < 100, you now can ask if labelCounter < labelsToPrint • The sentinel or limit value can be a variable just as easily as it can be a constant Chapter 6

  23. Flowchart and Pseudocodefor Label-Making mainLoop() Chapter 6

  24. Looping by Decrementing • Rather than increasing a loop control variable until it passes some sentinel value, sometimes it is more convenient to reduce a loop control variable on every cycle through a loop • Decreasing a variable by one is called decrementing the variable • When you decrement, you can avoid declaring a special variable for the labelsToPrint Chapter 6

  25. Avoiding Common Loop Mistakes • Two mistakes programmers make most often with loops are: • Neglecting to initialize the loop control variable • Neglecting to alter the loop control variable • For example, assume you remove the statement labelCounter = 0 from the program illustrated in Figure 6-10 Chapter 6

  26. Avoiding Common Loop Mistakes • Although the pseudocode shown in Figure 6-11 will produce the correct number of labels for every employee, the statement while labelCounter < inLastProduction * 1.1 executes an average of 110 times for each employee Chapter 6

  27. Using the For Loop • The label-making programs discussed in this chapter each contain two loops Chapter 6

  28. mainLoop() Logic for Label-Making Program Chapter 6

  29. Using the For Loop • Because you can’t determine ahead of time how many records there might be, the mainline loop in the label-making program is called an indeterminate or indefinite loop • With some loops, you know exactly how many times they will execute • If every employee needs 100 printed labels, then the loop within the mainLoop() module executes exactly 100 times for each employee Chapter 6

  30. Using the For Loop • This kind of loop, in which you definitely know the repetition factor, is a definite loop • Every high-level computer programming language contains a while statement that you can use to code any loop, including indefinite loops (like the mainline loop) and definite loops (like the label-printing loop) • You can write statements like the one shown on page 162 of the textbook in the middle of the page Chapter 6

  31. Using the For Loop • In addition to the while statement, most computer languages also support a for statement • You can use the for statement or for loop with definite loops when you know how many times a loop will repeat • The for statement provides you with three actions in one compact statement Chapter 6

  32. Using the For Loop • The for statement uses a loop control variable that it automatically: • Initializes – Evaluates – Increments • You are never required to use a for statement; the label loop executes correctly using a while statement with labelCounter as a loop control variable • When a loop is based on a loop control variable progressing from a known starting value to a known ending value in equal increments, the for loop presents you with a convenient shorthand Chapter 6

  33. Using the Do Until Loop • When you use either a while or a for loop, the body of the loop may never execute • When you want to ensure that a loop’s body executes at least one time, you can use a do until loop • In a do until loop, the loop control variable is evaluated after the loop body executes • Therefore, the body always executes at least one time Chapter 6

  34. do until Loop for Producing One Extra Label Chapter 6

  35. Printing One Label, Then Printing Enough to Cover Production Chapter 6

  36. Recognizing the Characteristics Shared by All Loops • All structured loops share these characteristics: • The loop-controlling question provides either entry to or exit from the repeating structure • The loop-controlling questions provide the only entry to or exit from the repeating structure • You should also notice the difference between unstructured loops and the structured do until and while loops Chapter 6

  37. Examples of Unstructured Loops Chapter 6

  38. Flowchart and Pseudocodefor Labels Based on Five Daily Production Counts Chapter 6

  39. Nesting Loops • Program logic gets more complicated when you must use loops within loops, or nesting loops • When nesting loops, you must maintain two individual loop control variables and alter each at the appropriate time Chapter 6

  40. Using a Loop to Accumulate Totals • Some business reports list no individual detail records, just totals • Such reports are called summary reports • When you read a real estate listing record, besides printing it you must add its value to an accumulator • An accumulator is a variable that you use to gather or accumulate values • An accumulator is very similar to a counter Chapter 6

  41. Using a Loop to Accumulate Totals • The difference lies in the value that you add to the variable; usually you add just one to a counter, whereas you add some other value to an accumulator Chapter 6

  42. housekeep() Module for Real Estate Program Chapter 6

  43. Flowchart for mainLoop() of Real Estate Listing Program Chapter 6

  44. finishUp() Module for Real Estate Program Chapter 6

  45. Summary • When you use a loop within a computer program, you can write one set of instructions that operates on multiple, separate sets of data • Three steps must occur in every loop: • You must initialize a loop control variable • Compare the variable to some value that stops the loop • Alter the variable within the loop • A counter is a numeric variable you use to count the number of times an event has occurred Chapter 6

  46. Summary • You can use a variable sentinel value to control a loop • Sometimes it is convenient to reduce or decrement a loop control variable on every cycle through a loop • The two mistakes programmers make most often with loops are: • Neglecting to initialize the loop control variable • Neglecting to alter the loop control variable Chapter 6

  47. Summary • Most computer languages support a for statement or for loop that you can use with definite loops when you know how many times a loop will repeat • When you want to ensure that a loop’s body executes at least one time, you can use a do until loop in which the loop control variable is evaluated after the loop body executes Chapter 6

  48. Summary • All structured loops share these characteristics: • The loop controlling question provides either entry to or exit from the repeating structure • The loop controlling question provides the only entry to or exit from the repeating structure • When you must use loops within loops, you use nesting loops Chapter 6

  49. Summary • When nesting loops, you must maintain two individual loop control variables and alter each at the appropriate time • Business reports often include totals • Summary reports list no detail records—only totals • An accumulator is a variable that you use to gather or accumulate values Chapter 6

More Related