Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 8 Repetition Statements

Similar presentations


Presentation on theme: "Chapter 8 Repetition Statements"— Presentation transcript:

1 Chapter 8 Repetition Statements

2 Introduction Iteration - process of looping or the repetition of one or more statements Loop body - the statement, or statements, that will be repeated

3 8.1 General Repetition Concepts
Two different categories of loops Pre-test: Test condition first - complete the body of the loop if condition is true Post-test: Test condition after body has executed once - body will only be repeated if the condition is true

4 8.1 General Repetition Concepts

5 8.1 General Repetition Concepts
Looping structures must have the following: Variable(s) with an initial value(s) to control whether the body of the loop is executed (i.e., control variable) Conditional expression involving control variable(s) Statement within the body where control variable is modified each time the body of the loop is executed

6 8.1 General Repetition Concepts
Infinite loop – a loop that continuously executes - the program or loop has to be terminated by the user or programmer Usually an error situation Most common cause - failure to manipulate the control variable In Windows/Unix - pressing Ctrl + C causes program to stop execution

7 8.1 General Repetition Concepts
Nested loop – a loop embedded in another loop Almost any statement type can be the loop body – including loops or conditional statements Once inner loop finishes, flow transfers to the next statement following the inner loop

8 8.2 The while Loop Pre-test loop Syntax:
while ( <condition> ) <action/body> Action, or body, will continue to execute while the condition remains true If the body needs to include multiple statements, surround them (action) with curly braces

9 8.2 The while Loop Sometimes see a loop written as: while ( 1 ) { ... } The numeric literal 1 is treated as a true condition and never changes – causing an infinite loop

10 8.2 The while Loop char again = ‘N';
cout << "\nDo you wish to multiply two numbers (y/n)? "; cin >> again; // Priming read //-| Read two numbers as long as usery says so. while ( again == 'y' || again == 'Y' ) // Notice no semicolon { cout << "Enter first number: "; cin >> operand1; cout << "Enter second number: "; cin >> operand2; cout << "Result: " << operand1 << " * " << operand2 << " = " << operand1 * operand2 << endl; // Don’t forget to change the control variable cout << "\nDo you wish to multiply two more numbers (y/n)? "; cin >> again; } // End of the loop body (action) cout << "The End" << endl;

11 8.2 The while Loop Priming read - a read before loop is reached
Initializes a variable that can be used to control the loop. Initializes a variable being used as an accumulator General Concept – initialization To provide a correct answer when the loop does not execute its body Examples: sum = 0; min = first input value, etc.

12 8.3 The do-while Loop Post-test loop (the body executes at least once)
Syntax: do <body/action> while ( <condition> ); Note semicolon after (…)!! If the body needs to include multiple statements, surround them with curly braces

13 8.3 The do-while Loop char menu_choice; float number;
cout << "Please enter a number: "; cin >> number; do { cout << "\n1) Square the Number\n" << "2) Cube the Number\n" << "3) Exit\n\n" << "Please enter menu choice: " << endl; cin >> menu_choice; switch ( menu_choice ) { case '1': cout << number << " Squared = " << number * number << endl; break; case '2': cout << number << " Cubed = " << number * number * number << endl; case '3': cout << "Goodbye" << endl; default: cout << "Invalid menu option" << endl; } } while ( menu_choice != '3' ); // Notice the semicolon

14 8.4 The for Loop Generally used when:
a specific number of iterations is required The control of the repetition is based on a sequence of values (e.g., 1,2,3,…,7; odd numbers; 5,4,3,2,1. Both while loops and for loops are pre-test loops - could be used interchangeably

15 8.4 The for Loop Syntax: (Red = for loop specification)
for ( <initial_value_assignment> ; <continuation_condition> ; <control_variable_update> ) <action> Example: for (k=4; k <= 10; k++) cin >> x;

16 8.4 The for Loop for ( int i = 0; i < 5; i++ )
cout << i << ' '; // Output

17 8.4 The for Loop Four sections: for ( <init> ;
<continue_condition> ; <control_var_update> ) <body/action> Four sections: Loop specification components separated by ; <init> and <update> components can include multiple statements separated by commas body can be any executable statement.

18 8.4 The for Loop Order in which the parts are executed:
<init> <continuation_condition> <body/action> (if true condition) <update> <condition> ... The <init> section is only executed once

19 8.4 The for Loop Variable(s) may be declared in <init> section
Scope is limited to the loop specification and body for (int k=1; k< 5; k++) cout << k << “ “;  output sequence

20 8.4 The for Loop // Example 1 for ( int i = 0; i < 5; i++ ) // No semicolon cout << i << endl; // Example 2 // Notice the multiple expressions for ( int i = 0, j = 5; i < 5; i++, j-- ) cout << i << ' ' << j << endl; // Example Output // Ex. 1 // Ex. 2

21 8.4 The for loop int sum = 0, value;
for ( int i = 0; i < 5; i++ ) // No semicolon { cout << "Enter value " << i + 1 << ": "; cin >> value; sum += value; } cout << "The sum of the five values is: " << sum << endl; // Example Output Enter value 1: 4 Enter value 2: 7 Enter value 3: 3 Enter value 4: 12 Enter value 5: 99 The sum of the five values is: 125

22 8.4.1 Nested for Loops for loops can be nested Used in many algorithms
Important when using multi-dimensional arrays

23 8.4.1 Nested for Loops for ( int row = 0; row < 5; row++ ) {
for ( int col = 0; col < 5; col++ ) cout << col << ' '; cout << endl; } // Example Output

24 8.4.1 Nested for Loops for ( int row = 0; row < 5; row++ ) {
for ( int col = row; col < 5; col++ ) cout << col << ' '; cout << endl; } // Example Output 2 3 4 3 4 4


Download ppt "Chapter 8 Repetition Statements"

Similar presentations


Ads by Google