0% found this document useful (0 votes)
6 views53 pages

Loops: Control Structures II (Repetition) Introduction To Programming Dr. Sajid Khan

Uploaded by

Nabeel Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views53 pages

Loops: Control Structures II (Repetition) Introduction To Programming Dr. Sajid Khan

Uploaded by

Nabeel Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 53

Loops

Control Structures II (Repetition)


Introduction to Programming
Dr. Sajid Khan
Objectives
In this chapter you will:
• Learn about repetition (looping) control structures
• Explore how to construct and use count-controlled, sentinel-
controlled and flag-controlled
• Examine break and continue statements
• Discover how to form and use nested control structures

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 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

3
The while Loop

• The general form of the while statement is:


while(expression)
statement
• 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
The while Loop (continued)

• Expression provides an entry condition

• Statement executes if the expression initially evaluates to true

• Loop condition is then reevaluated

• Statement continues to execute until the expression is no longer true

5
The while Loop (continued)

• Infinite loop: continues to execute endlessly

• Can be avoided by including statements in the loop body that assure


exit condition will eventually be false

6
7
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
• The syntax is:
counter = 0;
while(counter < N)
{
.
counter++;
.
}

8
Example 1

• Design a program that display “Hello World” 10 times


• int counter = 1;
• while(counter<=10)
•{
• cout<<"Hello World"<<endl;
• counter++;
•}

9
Example 2

• Design a program that display “Hello world, this is line N”


• int counter = 1;
• while(counter<=10)
•{
• cout<<"Hello World. This is Line "<<counter<<endl;
• counter++;
•}

10
Example 3

• Design a program that prompt user to enter 5 numbers and display


sum of all these numbers

11
• int counter = 1, num, sum = 0;
• while(counter<=5)
•{
• cout<<"Please enter "<<counter<<"th number"<<endl;
• cin>>num;
• sum = sum + num;
• counter++;
•}
• cout<<"Sum of entered numbers is "<<sum<<endl;

12
Sentinel-Controlled while Loops

• Sentinel variable is tested in the condition and loop ends when


sentinel is encountered
• The syntax is:
cin>>variable;
while(variable != sentinel)
{
.
cin>> variable;
.
}

13
Example

• Design a program that stays alive when user enter number other
than 100, if user enter 100, the program should terminate
• int num;
• cout<<"Please enter any number other than 100"<<endl;
• cin>>num;
• while(num!=100)
•{
• cout<<"Its good that you want to be with us"<<endl;
• cout<<"Please enter any number other than 100 to continue"<<endl;
• cin>>num;
•}

14
Flag-Controlled while Loops
• A flag-controlled while loop uses a Boolean variable to control the
loop
• The flag-controlled while loop takes the form:
found = false;
while(!found)
{
.
if(expression)
found = true;
.
}

15
Example

• Design a program that asks user to enter positive numbers. It should


add all the entered positive numbers. If user enters a negative
number, it should stop asking user to enter numbers and display sum
of all provided positive numbers.

16
• int num, sum = 0;
• bool flag = true;
• while(flag)
• {
• cout<<"Please enter a positive number"<<endl;
• cin>>num;
• if(num>=0)
• {
• sum = sum + num;
• }
• else
• {
• cout<<"You entered a negative number. \nThis program is about to
terminate"<<endl;
• flag = false;
•}
•}

• cout<<"Sum of positive numbers is "<<sum<<endl;

17
The for Loop

• The general form of the for statement is:

for(initial statement; loop condition;


update statement)
statement
• The initial statement, loop condition, and update statement are
called for loop control statements

18
19
The for Loop (continued)

• The for loop executes as follows:


• initial statement executes
• loop condition is evaluated
• If loop condition evaluates to true
• Execute for loop statement
• Execute update statement
• Repeat previous step until the loop condition
evaluates to false
• initial statement initializes a variable

20
The for Loop (continued)

• initial statement in the for loop is the first to be executed and is


executed only once
• If the loop condition is initially false, the loop body does not execute
• The update expression changes the value of the loop control variable
which eventually sets the value of the loop condition to false
• The for loop executes indefinitely if the loop condition is always true

21
The for Loop (continued)

• Fractional values can be used for loop control variables


• A semicolon at the end of the for statement is a semantic error
• In this case, the action of the for loop is empty

• If the loop condition is omitted


• It is assumed to be true

22
The for Loop (continued)

• In a for statement, all three statements (initial statement, loop


condition, and update statement) can be omitted

• The following is a legal for loop:

for(;;)

cout<<"Hello"<<endl;

23
Examples

• Lets repeat the examples of while loop

24
Example 1

• Design a program that display “Hello World” 10 times

• for(int i = 1;i<=10;i++)
•{
• cout<<"Hello"<<endl;
•}

25
• Where i++ is post increment of i.

26
• There are two ways to initialize the counter i.
• For example, the above example can be implemented using
• int i;
• for(i = 1;i<=10;i++)
•{
• cout<<"Hello"<<endl;
•}

27
Difference between two approaches?

• Try to run source codes given in next two slides

28
First case

• for(int i = 1;i<=10;i++)
•{
• cout<<"Hello"<<endl;

•}
• cout<<"Final value of counter is "<<i<<endl;

29
Second case

• int i;
• for(i = 1;i<=10;i++)
•{
• cout<<"Hello"<<endl;

•}
• cout<<"Final value of counter is "<<i<<endl;

30
Difference?

• In first case, the counter i is local variable of for loop that can be
accessed inside the loop body.
• Immediately after loop is executed completely, the counter i is
destroyed. That’s why we can’t access it outside the loop body.
• In second case, counter i is local variable of main body, since main
contain for loop as well, that’s why it is accessible inside the loop
body as well.

31
Example 2

• Design a program that display “Hello world, this is line N”


• int i;
• for(i = 1;i<=10;i++)
•{
• cout<<"Hello world, this is line “<<i<<endl;
•}

32
Example 3

• Design a program that prompt user to enter 5 numbers and display


sum of all these numbers

• int num, sum = 0;


• for(int i = 1;i<=5;i++)
•{

• cout<<"Enter any number"<<endl;


• cin>>num;
• sum = sum + num;
•}
• cout<<"Final sum is "<<sum<<endl;

33
Example 4

• Design a program that stays alive when user enter number other than 100, if
user enter 100, the program should terminate

• int num, sum = 0;


• for(int i = 1;i<2;)
• {
• cout<<"Enter any positive number"<<endl;
• cin>>num;
• if(num!=100)
• sum = sum + num;
• else
• i = 2;
• }
• cout<<"Final sum is "<<sum<<endl;

34
Example 5

• Design a program that asks user to enter positive numbers. It should


add all the entered positive numbers. If user enters a negative
number, it should stop asking user to enter numbers and display sum
of all provided positive numbers.

35
• int num, sum = 0;
• for(int i = 1;i<2;)
•{
• cout<<"Enter any positive number"<<endl;
• cin>>num;
• if(num>0)
• sum = sum + num;
• else
• i = 2;
•}
• cout<<"Final sum is "<<sum<<endl;

36
The do…while Loop

• The general form of a do...while statement is:


do
statement
while(expression);
• The statement executes first, and then the expression is evaluated
• If the expression evaluates to true, the statement executes again
• As long as the expression in a do...while statement is true, the
statement executes

37
The do…while Loop (continued)

• To avoid an infinite loop, the loop body must contain a statement


that makes the expression false
• The statement can be simple or compound
• If compound, it must be in braces
• do...while loop has an exit condition and always iterates at least once
(unlike for and while)

38
39
Example

• Design a program that prompt user to enter numbers until user type
‘N’

40
Break & Continue Statements

• break and continue alter the flow of control


• When the break statement executes in a repetition structure, it
immediately exits
• The break statement, in a switch structure, provides an immediate
exit
• The break statement can be used in while, for, and do...while loops

41
Break & Continue Statements (continued)

• The break statement is used for two purposes:


1. To exit early from a loop
2. To skip the remainder of the switch structure
• After the break statement executes, the program continues with
the first statement after the structure
• The use of a break statement in a loop can eliminate the use of
certain (flag) variables

42
Break & Continue Statements (continued)

• 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

43
Break & Continue Statements (continued)

• In a while and do-while structure

• Expression (loop-continue test) is evaluated immediately after the continue


statement

• In a for structure, the update statement is executed after the


continue statement
• Then the loop condition executes

44
Example of continue

• int num, sum = 0;


• for(int i = 1;i<=30;i++)
•{
• if(i == 10)
• continue;
• cout<<"Hello world. This is "<<i<<"th line"<<endl;
•}

45
Example of break

• Design a program that stays alive when user enter number other than 100, if
user enter 100, the program should terminate
• int num;
• cout<<"Please enter any number other than 100"<<endl;
• cin>>num;
• while(true)
•{
• if(num == 100)
• break;
• cout<<"Its good that you want to be with us"<<endl;
• cout<<"Please enter any number other than 100 to continue"<<endl;
• cin>>num;
•}
• cout<<"You came out of the loop"<<endl;

46
Nested Control Structures

• Suppose we want to create the following pattern


*
**
***
****
*****
• In the first line, we want to print one star, in the second line two
stars and so on

47
Nested Control Structures (continued)

• Since five lines are to be printed, we start with the following for
statement
for(i = 1; i <= 5 ; i++)
• The value of i in the first iteration is 1, in the second iteration it is 2,
and so on
• Can use the value of i as limit condition in another for loop nested
within this loop to control the number of starts in a line

48
Nested Control Structures (continued)

• The syntax is:


for(i = 1; i <= 5 ; i++)
{
for(j = 1; j <= i; j++)
cout<<"*";
cout<<endl;
}

49
Nested Control Structures (continued)

• What pattern does the code produce if we replace the first for
statement with the following?
for (i = 5; i >= 1; i--)
• Answer:
*****
****
***
**
*

50
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

51
Summary
• while: expression is the decision maker, and the statement is the
body of the loop
• In a counter-controlled while loop,
• Initialize counter before loop
• Body must contain a statement that changes the value of the
counter variable
• A sentinel-controlled while loop uses a sentinel to control the while
loop
• An EOF-controlled while loop executes until the program detects
the end-of-file marker

52
Summary

• for loop: simplifies the writing of a count-controlled while loop


• Executing a break statement in the body of a loop immediately
terminates the loop
• Executing a continue statement in the body of a loop skips to the
next iteration
• After a continue statement executes in a for loop, the update
statement is the next statement executed

53

You might also like