Download presentation
Presentation is loading. Please wait.
Published byHeather Parker Modified over 8 years ago
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 Edition2
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 Edition3
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 Edition4
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 Edition5
6
while Repetition (Looping) Structure (continued) Introduction to C++ Programming: Brief Edition6 Loop control variable
7
Designing while Loops Introduction to C++ Programming: Brief Edition7
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 Edition8
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 Edition9
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 Edition10
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 Edition11
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 Edition12
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 Edition13
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 Edition14
15
Programming Example: Entering Grade Introduction to C++ Programming: Brief Edition15
16
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
17 Interactive while Loops (continued) Example of a break statement:
18
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
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 for loop control, or for indexed, variable) Used to implement counter-controlled loops –Called a counted or indexed for loop Introduction to C++ Programming: Brief Edition20
21
for Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition21
22
for Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition22 Adding a ; here would be a mistake too
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 Edition23
24
for Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition24
25
25 for Loops (continued)
26
26 for Loops (continued)
27
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 Edition28
29
do … while Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition29
30
do … while Looping (Repetition) Structure (continued) Introduction to C++ Programming: Brief Edition30
31
Introduction to C++ Programming: Brief Edition31
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 Edition32
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 Edition33
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 Edition34
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 Edition35
36
36 Nested Loops (continued)
37
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 Edition38
39
Avoiding Bugs by Avoiding Patches (continued) Approach 1: add a software patch Approach 2: fix the original problem Introduction to C++ Programming: Brief Edition39
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 Edition40
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 Edition41
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.