200 likes | 285 Views
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. Logical expression (variable or arithmetic expression) Boolean results (True or False). General Structure.
E N D
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
Logical expression (variable or arithmetic expression)Boolean results (True or False) General Structure while (expression) { statement1 statement2 … }
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
Initialize variables Variable as expressionvalue other than zero tests true Loop body Statements that provide exit from loop 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 test expression variable Expression evaluated, whentrue, statements in loop executed Statements within loop Changing variable to provide exit from loop Example while Loop int i= 0; while (i <= 5) { cout << “Loop number is “ << i; i++; }
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 • do • { cout << “\n enter an id number:”; • cin >> id_num; • } while ((id_num < 100) || (id_num>1999)); • Bare bones • Does not alert user of problems
Decision Statement – Chapter 5 Exit loop if id number is valid Expression always true 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);
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
3 2 1 3 finalValue counter Display Screen Example: False True True True • int finalValue; • cin >> finalValue; • for (int counter = 0; counter < finalValue; counter++) • cout << "*"; 0 3 * * *
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;
int counter, finalValue; • counter = 0; • cin >> finalValue; • while (counter < finalValue) • { cout << "*"; • counter++;} Comparison: • int finalvalue; • cin >> finalValue; • for (int counter = 0; counter < finalValue; counter++) • cout << "*"; 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 Learned how to: • Create while loops • Create do-while loops • Create for loops • Trace and debug loops • Use loops to solve problems