Download presentation
Presentation is loading. Please wait.
Published byHarriet Singleton Modified over 9 years ago
1
Lecture 4 Looping
2
Building on the foundation Now that we know a little about cout cin math operators boolean operators making decisions using if statements
3
Advantages of Computers Computers are really quick Computers don't get bored They can do the same thing over and over and be “happy”
4
Loops What is the effect of a loop? { some C++ code; } as long as some condition is true
5
While loops while ( num < 10 ) { cout << “num = ” << num << endl; num = num + 1; } False Bool Exp True Code Block
6
While loops while ( num < 10 ) cout << “Hello there \n” ; As before if there is only one line in the body of the loop, the { } are not needed. But....what is the problem? False Bool Exp Code Block True
7
While loops while ( num < 10 ) cout << “Hello there \n” ; As before if there is only one line in the body of the loop, the { } are not needed. But....what is the problem? Infinite Loop: a loop that doesn't end False Bool Exp Code Block True
8
What is a difference between if and while Which of the following is the if (left or right)? False Bool Exp Code Block True False Bool Exp Code Block True
9
What is a difference between if and while Which of the following is the if (left or right)? False Bool Exp Code Block True False Bool Exp Code Block True if while
10
Class Exercise ask the user for 10 integers return to the user the total of the 10 integers and their average Please enter 10 numbers num 1: 23 num 2: 56..... num 10: -34 The total of your 10 numbers is: 345 The average for the 10 numbers is: 34 Things to think about: What part needs to be repeated? This will go in the loop body How many variables do you need?
11
Answer int num = 1, total = 0, temp; cout << “Please enter 10 numbers \n” while ( num <= 10 ) { cout << “num “ << num << “:” ; cin >> temp ; total = total + temp; num = num + 1; } cout << “The total of your 10 numbers is: “ << total << endl; cout << “The average of your 10 number is: << ( total / 10 ) << endl;
12
Counter Controled Loop Counter Controled Loop uses a variable (num) to count and control when the loop stops int num = 1, total = 0, temp; cout << “Please enter 10 numbers \n” while ( num <=10 ) { cout << “num “ << num << “:” ; cin >> temp ; total = total + temp; num = num + 1; } cout << “The total of your 10 numbers is: “ << total << endl;
13
Another Class Exercise Most of the time our DOS screen is 80 characters wide To help with making a “pretty” display, make a loop that will print 80 numbers across the screen.....but always print from 1 to 10 ( 0 will represent a 10) 123456789012345...................................67890
14
Answer int count = 1, output = 1; while ( count <= 80 ) { cout << output ; count = count + 1; output = output + 1; if (output > 9 )// reset output to 0 if over 9 output = 0; }
15
Another Answer int count = 1, output = 1; while ( count <= 80 ) { cout << output ; count = count + 1; // reset output to 0 if over 9 output = ( output > 9 ? 0 : output + 1 ); }
16
Another Answer int num = 1 ; while ( num <= 80 ) { cout << ( num % 10 ) ; num = num + 1; }
17
While loops You can put any kind of code in the code block..... False Bool Exp Code Block True
18
While loops You can put any kind of code in the code block........even other loops False Bool Exp Code Block True False Bool Exp Code Block True
19
False Bool Exp Code Block True False Bool Exp Code Block True In everyday life we have an embedded loop: ???? Embedded loops (a loop inside of another loop)
20
False Bool Exp Code Block True False Bool Exp Code Block True hours minutes In everyday life we have an embedded loop: Time Embedded loops (a loop inside of another loop)
21
Creating Some Time Output int hour = 0, min; while ( hour < 24 ) { min = 0; while ( min < 60 ) { cout << hour << ':' << min << endl; min = min + 1; }// end of minute loop hour = hour + 1; }// end of hour loop
22
Now What is the Output? int hour = 0, min; while ( hour < 24 ) { min = 0; while ( min < 60 ) { cout << (hour < 10 ? '0' : “” ) << hour; cout << ':' ; cout << (min < 10 ? '0' : “” ) << min << endl; min = min + 1; }// end of minute loop hour = hour + 1; }// end of hour loop
23
Infinite loops Common Infinite Loops while ( ch = ‘y’ ) {.... } Remember: non-zero numbers true zero false
24
Infinite loops ) Common Infinite Loops while ( ch = ‘y’ ) {.... } Remember: non-zero numbers true zero false or int i = 0 while ( i < 10 ) {........ // forgot i++; }
25
Looping Control Structures Three different commands while statement do-while statement......
26
The Do-While Statement Syntax do code block while (bool expr); Bool Exp Code Block True False
27
Using a do while loop char reply; do {.........// some code cout > reply; } while(reply == 'y');
28
Why use a.......? What is the advantage of a while: do...while:
29
Why use a.......? What is the advantage of a while: body will execute 0 – N times do...while:body will execute 1 – N times
30
Looping Control Structures Three different commands while statement do-while statement for statement
31
Common use of loop int cnt = 0;// initialize while ( cnt < 10 ) {// check......; // do something.......body of loop......; cnt++;// update }
32
The for loop Syntax for (initialization ; bool expression ; update action) body of the loop Example for (int i = 0; i < 3; i++) { cout << "i is " << i << endl; }
33
Bool Exp Body true false Initialization Update Action Executed once at the beginning of the for loop's execution The Bool Exp is evaluated at the start of each iteration of the loop
34
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0
35
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0
36
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0 i is 0
37
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 0 i is 0
38
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 1 i is 0
39
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 1 i is 0
40
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 1 i is 0 i is 1
41
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 1 i is 0 i is 1
42
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 2 i is 0 i is 1
43
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 2 i is 0 i is 1
44
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 2 i is 0 i is 1 i is 2
45
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 2 i is 0 i is 1 i is 2
46
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 3 i is 0 i is 1 i is 2
47
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 3 i is 0 i is 1 i is 2
48
Execution Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i 3 i is 0 i is 1 i is 2 all done
49
Embedding for loops Just like while loops, for loops can also be embedded inside other loops in fact, due to there compactness (information being easier to read) many embedded loops will be for loops
50
int cntr1 =0, cntr2 =0, cntr3 =0,cntr4 =0, cntr5 =0; cntr1++; for (int i = 1; i <= 10; ++i) { cntr2++; for (int j = 1; j <= 20; ++j) { cntr3++; } cntr4++; } cntr5++; cout << “cntr1: “ << cntr1 << endl << “cntr2: “ << cntr2 << endl << “cntr3: “ << cntr3 << endl << “cntr4: “ << cntr4 << endl << “cntr5: “ << cntr5 << endl; What is the output?
51
Answer: cntr1: 1 cntr2: 10 cntr3: 200 cntr4: 10 cntr5: 1 Press any key to continue
52
Class Exercise Write code to display a grid. For each position, display the location’s row and column number. Put two blanks between each location. Ex: 1,1 1,2 1,3.... 1,9 2,1 2,2.... 2,9.... 8,1 8,2.... 8,9 9,1 9,2 9,3.....9,9
53
One solution to grid exercise for(int row = 1; row < 10; row++ ){ for(int col = 1; col < 10; col++) { cout << row << ‘,’ << col << “ “; }// end of col loop cout << endl; } // end of row loop
54
Another use of break break can be used to exit a loop // in some game while ( life > 0 ) {........ // play game cout << “Do you want to quit(q):”; cin >> userResponse; if (userResponse == ‘q’ ) break; } // end while loop not the best example
55
A better solution // in some game userResponse = ‘c’; while ( life > 0 && userResponse != ‘q’ ) { // play game.... cin >> userResponse; } // end while loop
56
The best solution // in some game do { // play game.... cin >> userResponse; } while ( life > 0 && userResponse != ‘q’ );
57
Another use of break break will only exit out of one loop (if embedded) for ( int row = 1; row < 10; row++ ) { for ( int col = 1; col < 10; col++) { // do something if ( ???? ) break;// this will stop the col loop } // col loop } // row loop
58
Continue, the brother of break the key word, continue, will cause execution to skip to the boolean expression while( something == true ) { // do something if ( x > 0 ) continue;// skip to end of block // do some more.... } // end of while
59
Continue, the brother of break the key word, continue, will cause execution to skip to the boolean expression while( something == true ) { // do something if ( x > 0 ) continue;// skip to end of block // do some more.... } // end of while
60
Using break and continue in loops First look for a solution that does not use break or continue Only use break and continue if it is the only solution or it makes the code easier to understand Note: always avoid using goto.... there is almost always a better way
61
Sentinel Controled Loops Continue doing the loop until a special value (the sentinel) is encounter
62
Sentinel Controled Loops Continue doing the loop until a special value (the sentinel) is encounter Example: Before we asked the user for 10 numbers and then we told the user total of the 10 numbers average of the 10 numbers
63
Sentinel Controled Loops Continue doing the loop until a special value (the sentinel) is encounter Example: Before we asked the user for 10 numbers and then we told the user total of the 10 numbers average of the 10 numbers Now we want the user to enter as many numbers as they want a negative number is the signal that they are done ( the sentinel )
64
quiz int count = 1, total = 0, input = 0; cout << “Please enter some positive numbers that I will average \n”; cout << “Enter a negative number to signal that you are done \n”; while ( input >= 0 ) { cout << “# “ << count << “:” ; cin >> input; total = total + input; count = count + 1; } count = count – 1; if ( count > 0 ) { cout << “The total of your “ << count ; cout << “ numbers is: “ << total << endl; cout << “The average of your “ << count cout << “ number is: << ( total / count ) << endl; } try it with: 5 7 try it with: 5 7 Will this work?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.