Lecture Programming in C++ - Chapter 6: Repetition. On completion of this chapter students will know how to: Create while loops, create do-while loops, create for loops, trace and debug loops, use loops to solve problems.
Trang 1Chapter 6 Repetition
Trang 2
while Loop
Simplest loop
Two parts: test expression and loop body Pretested loop
– Execute loop body if test true
– Bypass loop body if test false
Lesson 6.1
Trang 3while (expression) {
statement1 statement2 …
}
Logical expression (variable or arithmetic expression)
Boolean results (True or False)
Lesson 6.1
Trang 41. Initialize variable acting as test expression
2. Evaluate the boolean test
3. If true execute statements within loop
4. Update the variable
5. Go back to step 2
Note: if no change to variable then infinite loop (never ends) is created
Lesson 4.1
Trang 5int i= 0, number = 1;
while (number)
{
cout << “Please type a number. ”
<< “Type 0 (zero) to stop execution.\n”; cin >> number;
i++;
if (i > 50) break;
}
Initialize variables Variable as expression value other than zero tests true
Loop body Statements that provide exit from loop
Lesson 6.2
Trang 6int i= 0;
while (i <= 5)
{
cout << “Loop number is “ << i;
i++;
}
Initialize test expression variable
Expression evaluated, when true, statements in loop executed
Statements within loop
Changing variable to provide exit from loop
Lesson 6.2
Trang 7Used when you want to execute loop
at least once Loops on test being true and exits when test is false
Lesson 6.3
Trang 8do
{ statement1;
statement2;
… } while (expression);
Lesson 6.3
Trang 9Bare bones
Does not alert user of problems
do
{ cout << “\n enter an id number:”;
cin >> id_num;
} while ((id_num < 100) || (id_num>1999));
Lesson 6.3
Trang 10Better do while Loop do
{ cout << “\n Enter an id number:”;
cin >> id_num;
if ((id_num < 100) || (id_num > 1999))
{ cout << “\n invalid number entered”
<< “\n please check and reenter”; }
else
break;
} while (1);
Decision Statement – Chapter 5
Expression always true Exit loop if id number is valid
Lesson 6.3
Trang 11Recap while(s) while
– Most commonly used when repetition not counter controlled
– Pretested – Loop body may not be executed
dowhile
– Convenient when at least one repetition needed – Posttested
Lesson 6.3
Trang 12
For Loop
Convenient for counter controlled loops Pretested loop
Same behavior as while
– Set lcv to initial value
– Test lcv against terminating value
– Update lcv to next value
All done in for header statement
Lesson 6.4
Trang 13for (initialize lcv; test lcv; update lcv)
{
statement;
statement;
}
Lesson 6.4
Trang 14
for Loop (cont.) Example:
cout << i;
Initialization, testing and updating in same statement
Semicolons required
Braces optional if only one statement
Lesson 6.4
Trang 15
Example:
int finalValue;
cin >> finalValue;
for (int counter = 0; counter < finalValue; counter++) cout << "*";
Display Screen
3
finalValue3
counter
0
True
True
True
False
Lesson 6.4
Trang 16
For Loop Examples
float sum = 0;
for (float x = 0.5; x < 20.1; x += 0.5)
sum += sqrt (x);
for (int count = 0; count < n; count++)
cout << ch;
Lesson 6.4
Trang 17
Comparison:
int finalvalue;
cin >> finalValue;
for (int counter = 0; counter < finalValue; counter++) cout << "*";
counter = 0;
cin >> finalValue;
while (counter < finalValue) { cout << "*";
counter++;}
int counter, finalValue;
int finalvalue;
cin >> finalValue;
for (int counter = 0;
counter < finalValue;
counter ++)
cout << "*";
Lesson 6.4
Trang 18
Debugging and Testing
Off by one errors
– Check loops to ensure you are executing the correct number of times
– x < 10 or x <= 10
Check loop boundaries
– Can create infinite loop
Does answer make sense
Lesson 6.4
Trang 19break statement
– Can use within loop to terminate early
– Controversial
Multiple expressions for initialization and increment
– Use comma separated list
– for (I = 1, j = 2; I < 10; I++, j++)
Lesson 6.4
Trang 20Create while loops
Create dowhile loops
Create for loops
Trace and debug loops
Use loops to solve problems Learned how to:
Chapter 6