1 / 41

Chapter 5 Control Structure (Repetition)

Chapter 5 Control Structure (Repetition). Objectives. In this chapter, you will: Learn about repetition (looping) control structures Explore how to construct and use count-controlled, sentinel-controlled, flag-controlled, and EOF-controlled repetition structures Examine break statements

qamar
Download Presentation

Chapter 5 Control Structure (Repetition)

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. Chapter 5 Control Structure (Repetition)

  2. Objectives In this chapter, you will: • Learn about repetition (looping) control structures • Explore how to construct and use count-controlled, sentinel-controlled, flag-controlled, and EOF-controlled repetition structures • Examine break statements • Discover how to form and use nested control structures • Learn how to avoid bugs by avoiding patches Introduction to C++ Programming: Brief Edition 2

  3. Why Is Repetition Needed? Repetition allows you to efficiently use variables Can input, add, and average multiple numbers using a limited number of variables For example, to add three numbers: Declare a variable for each number, input the numbers, and add the variables together Create a loop that reads a number into a variable and adds it to a variable that contains the sum of the numbers Introduction to C++ Programming: Brief Edition 3

  4. while Repetition (Looping) Structure The general form of the while statement is: while is a reserved word Statement can be simple or compound Expression acts as a decision maker and is usually a logical expression Statement is called the body of the loop The parentheses are part of the syntax Introduction to C++ Programming: Brief Edition 4

  5. Infinite loop: continues to execute endlessly Avoided by including statements in loop body that assure exit condition is eventually false while Repetition (Looping) Structure (continued) Introduction to C++ Programming: Brief Edition 5

  6. while Repetition (Looping) Structure (continued) Loop control variable Introduction to C++ Programming: Brief Edition 6

  7. Designing while Loops Introduction to C++ Programming: Brief Edition 7

  8. Case 1: Counter-Controlled while Loops • If you know exactly how many pieces of data need to be read, the while loop becomes a counter-controlled loop Introduction to C++ Programming: Brief Edition 8

  9. Case 2: Sentinel-Controlled while Loops • Sentinel variable is tested in the condition and loop ends when sentinel is encountered Introduction to C++ Programming: Brief Edition 9

  10. Case 3: Flag-Controlled while Loops A flag-controlled while loop uses a bool variable to control the loop The flag-controlled while loop takes the form: Introduction to C++ Programming: Brief Edition 10

  11. Example 4-5: Number Guessing Game • Example 4-5 implements a number guessing game using a flag-controlled while loop • The program uses the function rand of the header file cstdlib to generate a random number • rand() returns an int value between 0 and 32767 • To convert it to an integer greater than or equal to 0 and less than 100: rand() % 100 Introduction to C++ Programming: Brief Edition 11

  12. Case 4: EOF-Controlled while Loops • Use an EOF (end of file)-controlled while loop • The logical value returned by cin can determine if the program has ended input Introduction to C++ Programming: Brief Edition 12

  13. eof Function • The function eof can determine the end of file status • Like other I/O functions (get, ignore), eof is a member of data type istream • The syntax for the function eof is: istreamVar.eof() where istreamVar is an input stream variable, such as cin Introduction to C++ Programming: Brief Edition 13

  14. More on Expressions in while Statements The expression in a while statement can be complex Example while ((numOfGuesses < 5) && (!isGuessed)) { … } Introduction to C++ Programming: Brief Edition 14

  15. Programming Example: Entering Grade Introduction to C++ Programming: Brief Edition 15

  16. Interactive while Loops • break statement: forces an immediate break, or exit, from switch,while,for, and do-while statements • break statement violates pure structured programming, but is useful for breaking out of loops when an unusual condition is detected

  17. Interactive while Loops (continued) Example of a break statement:

  18. Interactive while Loops (continued) • continue statement: applies to while,do-while, and for statements; causes the next iteration of the loop to begin immediately • continue statement is useful for skipping over data that should not be processed in this iteration, while staying within the loop • Null statement: a semicolon with nothing preceding it; a do-nothing statement required for syntax purposes only

  19. Interactive while Loops (continued) A continue statement where invalid grades are ignored, and only valid grades are added to the total:

  20. for Looping (Repetition) Structure • The general form of the for statement is: • The initial statement, loop condition, and update statement are called for loop control statements • initial statement usually initializes a variable (called the forloop control, or forindexed, variable) • Used to implement counter-controlled loops • Called a counted or indexedfor loop Introduction to C++ Programming: Brief Edition 20

  21. for Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition 21

  22. for Looping (Repetition) Structure (continued) Adding a ; here would be a mistake too Introduction to C++ Programming: Brief Edition 22

  23. for Looping (Repetition) Structure (continued) • C++ allows you to use fractional values for loop control variables of the double type • Results may differ • A semicolon at the end of the for statement (just before the body of the loop) is a semantic error • If the loop condition is omitted, it is assumed to be true • The following is a legal (infinite) for loop: for (;;) cout << "Hello" << endl; Introduction to C++ Programming: Brief Edition 23

  24. for Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition 24

  25. for Loops (continued)

  26. for Loops (continued)

  27. Loop Programming Techniques (continued)

  28. do…while Looping (Repetition) Structure • General form of a do...while is: • The statement executes first, and then the expression is evaluated • To avoid an infinite loop, body must contain a statement that makes the expression false • The statement can be simple or compound • Loop always iterates at least once Introduction to C++ Programming: Brief Edition 28

  29. do…while Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition 29

  30. do…while Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition 30

  31. Introduction to C++ Programming: Brief Edition 31

  32. Choosing the Right Looping Structure All three loops have their place in C++ If you know, or can determine in advance, the number of repetitions needed, the for loop is the correct choice If you do not know, and cannot determine in advance, the number of repetitions needed, and it could be zero, use a while loop If you do not know, and cannot determine in advance, the number of repetitions needed, and it is at least one, use a do...while loop Introduction to C++ Programming: Brief Edition 32

  33. Loops and the break Statement break alters the flow of control break statement is used for two purposes To exit early from a loop Can eliminate the use of certain (flag) variables To skip the remainder of the switch structure After the break statement executes, the program continues with the first statement after the structure Must be used very sparingly within a loop Introduction to C++ Programming: Brief Edition 33

  34. Nested Control Structures • To create the following pattern: * ** *** **** ***** • We can use the following code: for (i = 1; i <= 5 ; i++) { for (j = 1; j <= i; j++) cout << "*"; cout << endl; } Introduction to C++ Programming: Brief Edition 34

  35. Nested Control Structures (continued) What is the result if we replace the first for statement with the following? for (i = 5; i >= 1; i--) Answer ***** **** *** ** * Introduction to C++ Programming: Brief Edition 35

  36. Nested Loops (continued)

  37. Nested Loops (continued)

  38. Avoiding Bugs by Avoiding Patches • A software patch is a piece of code written on top of an existing piece of code and intended to remedy a deficiency in the original code • Determining and correcting the original deficiency is a much better approach • Example: code intended to print three rows of * Introduction to C++ Programming: Brief Edition 38

  39. Avoiding Bugs by Avoiding Patches (continued) • Approach 1: add a software patch • Approach 2: fix the original problem Introduction to C++ Programming: Brief Edition 39

  40. Summary • C++ has three looping (repetition) structures • while, for, and do…while • while, for, and do are reserved words • while and for loops are called pre-test loops • do...while loop is called a post-test loop • while and for may not execute at all, but do...while always executes at least once • while: expression is the decision maker, and the statement is the body of the loop Introduction to C++ Programming: Brief Edition 40

  41. Summary (continued) • A while loop can be: • Counter-controlled • Sentinel-controlled • EOF-controlled • for loop: simplifies the writing of a counter-controlled while loop • Putting a semicolon at the end of the for loop is a semantic error • Executing a break statement in the body of a loop immediately terminates the loop Introduction to C++ Programming: Brief Edition 41

More Related