FACULTY OF TECHNOLOGY, ART AND DESIGN
Programming 2
MEK 3100
Instructor: Hadi Zahmatkesh
Email: hadi.zahmatkesh@oslomet.no
Lecture 4
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 five 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
while Looping (Repetition)
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
while Looping (Repetition)
Structure (cont’d)
• Infinite loop: continues to execute endlessly
✓ Avoided by including statements in loop body that assure exit
condition is eventually false
while Looping (Repetition)
Structure (cont’d)
while Looping (Repetition)
Structure (cont’d)
Case 1: Counter-Controlled
while Loops
• If you know exactly how many pieces of data need to be read,
• while loop becomes a counter-controlled loop
Case 2: Sentinel-Controlled
while Loops (cont’d)
Case 2: Sentinel-Controlled
while Loops (cont’d)
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:
Case 3: Flag-Controlled
while Loops (cont’d)
• Example 5-6 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:
o rand() % 100
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)
• In C++, for is a reserved word
for Looping (Repetition)
Structure (cont’d)
for Looping (Repetition)
Structure (cont’d)
for Looping (Repetition)
Structure (cont’d)
for Looping (Repetition)
Structure (cont’d)
• The following is a semantic error:
for Looping (Repetition)
Structure (cont’d)
do…while Looping
(Repetition) Structure
• General form of a do...while:
• 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
do…while Looping
(Repetition) Structure (cont’d)
do…while Looping
(Repetition) Structure (cont’d)
do…while Looping
(Repetition) Structure (cont’d)
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
break and continue Statements
• break and continue alter the flow of control
• break statement is used for two purposes:
✓ To exit early from a loop
o 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
break and continue Statements
(cont’d)
• continue is used in while, for, and do…while structures
• When executed in a loop
✓ It skips remaining statements and proceeds with the next
iteration of the loop
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;
}
Nested Control Structures (cont’d)
• What is the result if we replace the first for statement with the
following?
for (i = 5; i >= 1; i--)
• Answer:
*****
****
***
**
*