Chapter 5 Review: Iteration
Count-controlled loop
Counting loops repeat a pre-specified number of times. In other words,
the number of iterations is controlled by a "count" whose value is
known
before the loop starts.
Example problem: Find the average age at which the Presidents of the
U.S. have taken office.
Best implemented with a for statement.
Example statement: for (int president = 1; president <=
NumberOfPresidents;
President ++)
Event-controlled loop (a.k.a.Conditional loop)
A loop which repeats until a particular condition or "event" arises.
Example problem: Given the current population growth rate, how long
until there are 10 billion people on the planet.
Best implemented with a while statement.
Example statement: while (population <= LimitPopulation)
Sentinel-controlled loop (a kind of event loop)
An event-controlled loop used for processing a set of data, where the
loop
terminates when a data item with a particular "sentinel" value is
processed.
Example problem: Read a list of ages until a negative age is
encountered.
Best implemented with a while statement.
Example statement: while (age > 0)
Flag-controlled loop (a kind of event loop)
An event-controlled loop used for repeating some action whose
termination
depends on the occurrence of some real-time event. Usually this event
is
monitored by another process which communicates event completion by
setting
a boolean value, or "flag."
Example problem: A water treatment unit which repeats adding a
certain
chemical until a pH meter indicates that the target pH value has been
attained.
Best Implemented with a while statement.
Example statement: while (NeedsMoreChemical)
Endfile loop (a kind of event loop)
A specific application of an event loop
used to read data items from an external
file of unknown length.
Loop Construction
Every loop has four parts: initialization, testing, body,
increment.
The way in which these four parts interact is what creates the loops
behavior.
When constructing a loop, verify that all four parts are properly
specified.
You need to answer these four questions:
-
What is the loop's starting value? (initialization)
-
How is the loop termination determined? (testing)
-
How does the loop control variable get incremented (increment)
-
What statements are to be repeated? (body)
Initialization: int countPeople
= 0;
Testing:
while (countPeople < PeopleLimit)
{
Body:
Age = getInt("enter your age");
TotalYears = TotalYears + Age;
Increment:
countPeople = countPeople + 1;
}