Download - Chapter 6 - Repetition
Chapter 6 - Repetition
while Loop
Simplest loop Two parts: test expression and loop body Pre-tested loop
– Execute loop body if test true– Bypass loop body if test false
General Structure
while (expression) { statement1 statement2 … }
Logical expression (variable or arithmetic expression)Boolean results (True or False)
Steps In Using a while Loop
1. 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
Example while Loop
int 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 expressionvalue other than zero tests true
Loop body
Statements that provide exit from loop
Example while Loop
int i= 0;while (i <= 5) { cout << “Loop number is “ << i; i++; }
Initialize test expression variable
Expression evaluated, whentrue, statements in loop executed
Statements within loop
Changing variable to provide exit from loop
do-while Loop
Used when you want to execute loop at least once
Loops on test being true and exits when test is false
General Syntax
do
{ statement1;
statement2;
… } while (expression);
do while Loop Example
Bare bones Does not alert user of problems
do { cout << “\n enter an id number:”; cin >> id_num; } while ((id_num < 100) || (id_num>1999));
Better 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 re-enter”; } else break; } while (1);
Decision Statement – Chapter 5
Expression always trueExit loop if id number is valid
Recap while(s) while
– Most commonly used when repetition not counter controlled
– Pre-tested– Loop body may not be executed
do-while– Convenient when at least one repetition needed– Post-tested
For Loop
Convenient for counter controlled loops Pre-tested 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
General Syntax
for (initialize lcv; test lcv; update lcv) {
statement; statement; }
for Loop (cont.) Example: for (int i = 0; i < 10; i++)
cout << i; Initialization, testing and updating in same
statement Semicolons required Braces optional if only one statement
Example: int finalValue; cin >> finalValue; for (int counter = 0; counter < finalValue; counter++) cout << "*";
Display Screen
3finalValue
3counter
0
True
*1
True
*2
True
*3
False
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;
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 << "*";
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
For Loop Modifications
break 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++)
Summary
Create while loops Create do-while loops Create for loops Trace and debug loops Use loops to solve problems
Learned how to: