Programming 1 DCT 1033 Control Structures II (Repetition) While repetition statement For repetition statement Do repetition statement Nested loops.

Download Report

Transcript Programming 1 DCT 1033 Control Structures II (Repetition) While repetition statement For repetition statement Do repetition statement Nested loops.

Programming 1
DCT 1033
Control Structures II (Repetition)
While repetition statement
For repetition statement
Do repetition statement
Nested loops
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 EOFcontrolled repetition structures
• Examine break statements
• Discover how to form and use nested control
structures
• Learn how to avoid bugs by avoiding patches
2
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
3
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
4
while Repetition (Looping) Structure
(continued)
• Infinite loop: continues to execute endlessly
– Avoided by including statements in loop body that
assure exit condition is eventually false
5
while Repetition (Looping) Structure
(continued)
Loop control variable
6
Designing while Loops
7
Case 1: Counter-Controlled while
Loops
• If you know exactly how many pieces of data need
to be read, the while loop becomes a countercontrolled loop
8
Case 2: Sentinel-Controlled while
Loops
• Sentinel variable is tested in the condition and loop
ends when sentinel is encountered
9
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:
10
More on Expressions in while
Statements
• The expression in a while statement can be
complex
– Example
while ((numOfGuesses < 5) && (!isGuessed))
{
…
}
11
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
12
for Looping (Repetition) Structure
(continued)
13
for Looping (Repetition) Structure
(continued)
Adding a ; here would be a mistake too
14
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;
15
for Looping (Repetition) Structure
(continued)
16
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
17
do…while Looping (Repetition)
Structure (continued)
18
do…while Looping (Repetition)
Structure (continued)
19
20
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
21
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
22
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;
}
23
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
*****
****
***
**
*
24
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
25
Summary (continued)
• A while loop can be:
– Counter-controlled
– Sentinel-controlled
– EOF-controlled
• for loop: simplifies the writing of a countercontrolled 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
26