Top Banner
2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled Repetition for Repetition Structure Examples Using the for Structure switch Multiple-Selection Structure do/while Repetition Structure break and continue Statements Logical Operators Confusing Equality (==) and Assignment (=) Operators Structured-Programming Summary
63

2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

Dec 30, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

1

Control Structures

OutlineAssignment OperatorsIncrement and Decrement OperatorsEssentials of Counter-Controlled Repetitionfor Repetition StructureExamples Using the for Structureswitch Multiple-Selection Structuredo/while Repetition Structurebreak and continue StatementsLogical OperatorsConfusing Equality (==) and Assignment (=) OperatorsStructured-Programming Summary

Page 2: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

2

Assignment Operators

• Assignment expression abbreviations– Addition assignment operator

c = c + 3; abbreviated to c += 3;

• Statements of the formvariable = variable operator expression;

can be rewritten asvariable operator= expression;

• Other assignment operatorsd -= 4 (d = d - 4)

e *= 5 (e = e * 5)

f /= 3 (f = f / 3)

g %= 9 (g = g % 9)

Page 3: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

3

Increment and Decrement Operators

• Increment operator (++) - can be used instead of c += 1 or c = c + 1

• Decrement operator (--) - can be used instead of c -= 1 or c = c – 1– Preincrement

• When the operator is used before the variable (++c or –c)

• First, variable is changed, then new value is used in the expression in which it appears.

– Posincrement• When the operator is used after the variable (c++ or

c--)• Expression that the variable is in executes first, then

the variable is changed.

Page 4: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

4

Increment and Decrement Operators

• Increment operator (++)– Increment variable by one– c++

• Same as c += 1

• Decrement operator (--) similar – Decrement variable by one– c--

Page 5: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

5

Increment and Decrement Operators

• If c = 5, then – cout << ++c; // (increment then use)

• c is changed to 6, then printed out

– cout << c++; // (use then increment)• Prints out 5 (cout is executed before the

increment. • c then becomes 6

Page 6: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

6

Increment and Decrement Operators

• When variable not in expression– Preincrementing and postincrementing have

same effect++c;

cout << c;

and c++;

cout << c;

are the same

Page 7: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline7

1 // Fig. 2.14: fig02_14.cpp2 // Preincrementing and postincrementing.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 int c; // declare variable12 13 // demonstrate postincrement14 c = 5; // assign 5 to c15 cout << c << endl; // print 516 cout << c++ << endl; // print 5 then postincrement17 cout << c << endl << endl; // print 6 18 19 // demonstrate preincrement20 c = 5; // assign 5 to c21 cout << c << endl; // print 522 cout << ++c << endl; // preincrement then print 6 23 cout << c << endl; // print 6

Page 8: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline8

24 25 return 0; // indicate successful termination26 27 } // end function main

5

5

6

 

5

6

6

Page 9: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

9

Essentials of Counter-Controlled Repetition

• Counter-controlled repetition requires– Name of control variable/loop counter– Initial value of control variable– Condition to test for final value– Increment/decrement to modify control variable

when looping

Page 10: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline10

1 // Fig. 2.16: fig02_16.cpp2 // Counter-controlled repetition.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 int counter = 1; // initialization12 13 while ( counter <= 10 ) { // repetition condition14 cout << counter << endl; // display counter15 ++counter; // increment16 17 } // end while 18 19 return 0; // indicate successful termination20 21 } // end function main

Page 11: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline11

1

2

3

4

5

6

7

8

9

10

Page 12: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

12

Essentials of Counter-Controlled Repetition

• The declarationint counter = 1;

– Names counter– Declares counter to be an integer– Reserves space for counter in memory– Sets counter to an initial value of 1

Page 13: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

13

Essentials of Counter-Controlled Repetition

11 int counter = 1; // initialization12 13 while ( counter <= 10 ) { // repetition condition14 cout << counter << endl; // display counter15 ++counter; // increment16 17 } // end while

11 int counter = 0; // initialization12 13 while ( ++counter <= 10 ) // repetition condition14 cout << counter << endl; // display counter1516 17

Page 14: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

14

for Repetition Structure

• General format when using for loopsfor ( initialization; LoopContinuationTest;

increment )

statement;

• Examplefor( int counter = 1; counter <= 10; counter++ )

cout << counter << endl;

– Prints integers from one to ten

 

Page 15: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline15

1 // Fig. 2.17: fig02_17.cpp2 // Counter-controlled repetition with the for structure.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 // Initialization, repetition condition and incrementing 12 // are all included in the for structure header. 13 14 for ( int counter = 1; counter <= 10; counter++ )15 cout << counter << endl; 16 17 return 0; // indicate successful termination18 19 } // end function main

Page 16: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline16

1

2

3

4

5

6

7

8

9

10

Page 17: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

17

for Repetition Structure

• for loops can usually be rewritten as while loops

initialization;

while ( loopContinuationTest){

statement

increment;

}

• Initialization and increment– For multiple variables, use comma-separated lists

for (int i = 0, j = 0; j + i <= 10; j++, i++)

cout << j + i << endl;

Page 18: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

18

for Repetition Structure

• The three expressions in the for header are optional:– If the loopContinuationTest is omitted, C++

considers that this condition as true infinite loop

14 for ( int counter = 1; ; counter++ )15 cout << counter << endl; 16

Page 19: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

19

for Repetition Structure

Page 20: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline20

1 // Fig. 2.20: fig02_20.cpp2 // Summation with for.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 int sum = 0; // initialize sum12 13 // sum even integers from 2 through 10014 for ( int number = 2; number <= 100; number += 2 ) 15 sum += number; // add number to sum16 17 cout << "Sum is " << sum << endl; // output sum18 return 0; // successful termination19 20 } // end function main

Sum is 2550

Page 21: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

21

Examples Using the for Structure

for (int i = 1; i <= 100; i++)

// vary control variable from 1 to 100 in increments of 1

for (int i = 100; i >= 1; i--)

// vary control variable from 100 to 1 in increments of -1 (i.e., decremented)

for (int i = 7; i <= 77; i+=7)

// vary control variable from 7 to 77 in steps of 7

Page 22: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

22

Examples Using the for Structure

14 for ( int number = 2; number <= 100; number += 2 ) 15 sum = sum + number;

14 for ( int number = 2; 15 number <= 100;

16 number += 2 )

17 sum = sum + number;

14 for ( int number = 2; 15 number <= 100;

16 sum += number, number += 2 )

17 ; // empty body

Page 23: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

23

Examples Using the for Structure

• Program to calculate compound interestA person invests $1000.00 in a savings account yielding 5 percent interest. Assuming that all interest is left on deposit in the account, calculate and print the amount of money in the account at the end of each year for 10 years. Use the following formula for determining these amounts:

a = p(1+r) n

• p is the original amount invested (i.e., the principal),r is the annual interest rate,n is the number of years anda is the amount on deposit at the end of the nth year

Page 24: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline24

1 // Fig. 5.6: fig05_6.cpp2 // Calculating compound interest.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 using std::ios;8 using std::fixed;9 10 #include <iomanip>11 12 using std::setw; // enables program to set a field width13 using std::setprecision;14 15 #include <cmath> // enables program to use function pow16 17 // function main begins program execution18 int main()19 {20 double amount; // amount on deposit21 double principal = 1000.0; // starting principal22 double rate = .05; // interest rate23

Page 25: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline25

24 // output table column heads25 cout << "Year" << setw( 21 ) << "Amount on deposit" << endl;26 27 // set floating-point number format28 cout << fixed << setprecision( 2 ); 29 30 // calculate amount on deposit for each of ten years31 for ( int year = 1; year <= 10; year++ ) {32 33 // calculate new amount for specified year34 amount = principal * pow( 1.0 + rate, year );35 36 // output one table row37 cout << setw( 4 ) << year 38 << setw( 21 ) << amount << endl;39 40 } // end for 41 42 return 0; // indicate successful termination43 44 } // end function main

Page 26: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline26

Year Amount on deposit

1 1050.00

2 1102.50

3 1157.63

4 1215.51

5 1276.28

6 1340.10

7 1407.10

8 1477.46

9 1551.33

10 1628.89

Page 27: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

27

do/while Repetition Structure

• Similar to while structure– Makes “loop continuation test” at end, not

beginning Loop body executes at least once

• Formatdo {

statement

} while ( condition );

Page 28: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

28

do/while Repetition Structure

Page 29: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline29

1 // Fig. 5.7: fig05_7.cpp2 // Using the do/while repetition structure.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 int counter = 1; // initialize counter12 13 do { 14 cout << counter << " "; // display counter15 counter++;16 } while (counter <= 10 ); // end do/while 17 18 cout << endl;19 20 return 0; // indicate successful termination21 22 } // end function main

1 2 3 4 5 6 7 8 9 10

Page 30: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline30

1 // Fig. 5.7: fig05_7.cpp2 // Using the do/while repetition structure.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 int counter = 1; // initialize counter12 13 do { 14 cout << counter << " "; // display counter15 } while ( ++counter <= 10 ); // end do/while 16 17 cout << endl;18 19 return 0; // indicate successful termination20 21 } // end function main

1 2 3 4 5 6 7 8 9 10

Page 31: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

31

switch Multiple-Selection Structure

• switch– Test variable for multiple values– Series of case labels and optional default case

switch ( variable ) {case value1: // taken if variable == value1statementsbreak; // necessary to exit switch

case value2:case value3: // taken if variable == value2 or ==

value3statementsbreak;

default: // taken if variable matches no other casesstatementsbreak;

}

Page 32: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

32

switch Multiple-Selection Structure

Page 33: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

33

switch Multiple-Selection Structure

• Example upcoming– Program to read grades (A-F)– Display number of each grade entered

• Details about characters– Single characters typically stored in a char data

type• C++ feature: characters can be stored in any

integer data type because they are represented as 1-byte integers in the computer.

Page 34: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

34

switch Multiple-Selection Structure

– Can treat character as int or char• 97 is the numerical representation of lowercase ‘a’

(ASCII)• Use single quotes to get numerical representation

of charactercout << "The character (" << 'a' << ") has the value " << static_cast< int > ( 'a' ) << endl;

PrintsThe character (a) has the value 97

Next: you will see why we chose to represent characters as integers

Page 35: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline35

1 // fig02_22.cpp2 // Counting letter grades.3 #include <iostream>4 5 using std::cout;6 using std::cin;7 using std::endl;8 9 // function main begins program execution10 int main()11 {12 int grade; // one grade13 int aCount = 0; // number of As14 int bCount = 0; // number of Bs15 int cCount = 0; // number of Cs16 int dCount = 0; // number of Ds17 int fCount = 0; // number of Fs18 19 cout << "Enter the letter grades." << endl20 << "Enter the EOF character to end input." << endl;21

Page 36: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline36

22 // loop until user types end-of-file key sequence23 while ( ( grade = cin.get() ) != EOF ) {24 25 // determine which grade was input26 switch ( grade ) { // switch structure nested in while27 28 case 'A': // grade was uppercase A29 case 'a': // or lowercase a30 ++aCount; // increment aCount31 break; // necessary to exit switch32 33 case 'B': // grade was uppercase B34 case 'b': // or lowercase b35 ++bCount; // increment bCount 36 break; // exit switch37 38 case 'C': // grade was uppercase C39 case 'c': // or lowercase c40 ++cCount; // increment cCount 41 break; // exit switch42

Page 37: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline37

43 case 'D': // grade was uppercase D44 case 'd': // or lowercase d45 ++dCount; // increment dCount 46 break; // exit switch47 48 case 'F': // grade was uppercase F49 case 'f': // or lowercase f50 ++fCount; // increment fCount 51 break; // exit switch52 53 case '\n': // ignore newlines, 54 case '\t': // tabs, 55 case ' ': // and spaces in input56 break; // exit switch57 58 default: // catch all other characters59 cout << "Incorrect letter grade entered."60 << " Enter a new grade." << endl;61 break; // optional; will exit switch anyway62 63 } // end switch64 65 } // end while66

Page 38: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline38

67 // output summary of results68 cout << "\n\nTotals for each letter grade are:" 69 << "\nA: " << aCount // display number of A grades70 << "\nB: " << bCount // display number of B grades71 << "\nC: " << cCount // display number of C grades 72 << "\nD: " << dCount // display number of D grades73 << "\nF: " << fCount // display number of F grades74 << endl;75 76 return 0; // indicate successful termination77 78 } // end function main

Page 39: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline39

Enter the letter grades.

Enter the EOF character to end input.

a

B

c

C

A

d

f

C

E

Incorrect letter grade entered. Enter a new grade.

D

A

b

^Z

 

 

Totals for each letter grade are:

A: 3

B: 2

C: 3

D: 2

F: 1

Page 40: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline40

1 // GradeBook.h2 // Definition of class GradeBook that counts A, B, C, D and F grrades3 // Member functions are defined in GradeBook.cpp45 #include <string>6 using std::string;78 // GradeBook Class definition9 Class GradeBook10 {11 public:12 GradeBook(string); // constructor initializes courseName 13 void setCourseName(string); // Function that sets the course name14 string getCourseName(); // Function that gets the course name15 void displayMessage(); // Function that displays a welcome message16 void inputGrades(); // input arbitrarily number of grades17 void displayGradeReport(); // display report based on grades18 private:19 string courseName; // course name of this GradeBook 20 int aCount; // count of A Grades21 int bCount; // count of B Grades22 int cCount; // count of C Grades23 int dCount; // count of D Grades24 int fCount; // count of F Grades25 }; // end class GradeBook

Using Classes

Page 41: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

411 // GradeBook.cpp2 // Member function definitions for class GradeBook that3 // uses a switch statement to count A, B, C, D, and F grades4 #include <iostream>5 using std::cout; 6 using std::cin; 7 using std::endl; 89 #include “GradeBook.h”10 11 // Constructor initializes courseName with string supplied as argument;12 // initializes counter data members to 0;13 GradeBook::GradeBook(string name)14 { 15 setCourseName(name); //validate and store courseName16 aCount = 0; //initializes count of A grades to 017 bCount = 0; //initializes count of B grades to 018 cCount = 0; //initializes count of C grades to 019 dCount = 0; //initializes count of D grades to 020 fCount = 0; //initializes count of F grades to 021 } // End constructor

Page 42: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

4222 23 // function to set the course name; limits names to 25 or fewer characters24 void GradeBook::setCourseName(string name)25 { 26 if (name.length() <= 25) //if name has 25 or fewer characters27 courseName = name; //store name in the courseName28 else 29 courseName = name.substr(0, 25) //select first 25 characters30 } 3132 // Function that gets the course name33 String GradeBook::getCourseName()34 { 35 return courseName; // store the object’s course name36 } // end function getCourseName3738 // Function that displays a welcome message39 void GradeBook::displayMessage()40 { 41 // call getCourseName to get the courseName42 cout << “Welcome to the grade book for\n"<< getCourseName()<<"!“ 43 <<endl;44 } // end function displayMessage

Page 43: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

4345 // input arbitrary number of grades 46 void GradeBook::inputGrades()47 { 48 int grade; //grade entered by user49 cout << "Enter the letter grades." << endl50 << "Enter the EOF character to end input." << endl;51 // loop until user types end-of-file key sequence52 while ( ( grade = cin.get() ) != EOF ) {53 54 // determine which grade was input55 switch ( grade ) { // switch structure nested in while56 57 case 'A': // grade was uppercase A58 case 'a': // or lowercase a59 ++aCount; // increment aCount60 break; // necessary to exit switch61 62 case 'B': // grade was uppercase B63 case 'b': // or lowercase b64 ++bCount; // increment bCount 65 break; // exit switch66 67 case 'C': // grade was uppercase C68 case 'c': // or lowercase c69 ++cCount; // increment cCount 70 break; // exit switch71

Page 44: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

4472 case 'D': // grade was uppercase D73 case 'd': // or lowercase d74 ++dCount; // increment dCount 75 break; // exit switch76 77 case 'F': // grade was uppercase F78 case 'f': // or lowercase f79 ++fCount; // increment fCount 80 break; // exit switch81 82 case '\n': // ignore newlines, 83 case '\t': // tabs, 84 case ' ': // and spaces in input85 break; // exit switch86 87 default: // catch all other characters88 cout << "Incorrect letter grade entered."89 << " Enter a new grade." << endl;90 break; // optional; will exit switch anyway91 92 } // end switch93 94 } // end while95 } // end function inputGrades

Page 45: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

45

96 // display a report based on the grades entered by user97 void GradeBook::displayGradeReport()98 { 99 // output summary of results100 cout << "\n\nTotals for each letter grade are:" 101 << "\nA: " << aCount // display number of A grades102 << "\nB: " << bCount // display number of B grades103 << "\nC: " << cCount // display number of C grades 104 << "\nD: " << dCount // display number of D grades105 << "\nF: " << fCount // display number of F grades106 << endl; 107 } // end function displayGradeBook

Page 46: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

461 // figure05_11.cpp2 // Create GRadeBook object, input grades and display grade report3 #include “GradeBook.h” // include definition of class Analysis45 int main()6 {7 GradeBook myGradeBook(“MECH215 Introduction to C++ Programming"); 89 myGradeBook.displayMessage(); // Display Welecome Message 10 myGradeBook.inputGrades(); // read grades from user11 myGradeBook. displayGradeReport(); // Display report based on grades12 return 0; // indicate that program ended successfully 13 } // end main

Page 47: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

47

break and continue Statements

• break statement– Immediate exit from while, for, do/while, switch

– Program continues with first statement after structure

• Common uses– Escape early from a loop– Skip the remainder of switch

Page 48: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline48

1 // Fig. 5.13: fig05_13.cpp2 // Using the break statement in a for structure.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 12 int x; // x declared here so it can be used after the loop13 14 // loop 10 times15 for ( x = 1; x <= 10; x++ ) {16 17 // if x is 5, terminate loop18 if ( x == 5 )19 break; // break loop only if x is 520 21 cout << x << " "; // display value of x22 23 } // end for 24 25 cout << "\nBroke out of loop when x became " << x << endl;

Page 49: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline49

26 27 return 0; // indicate successful termination28 29 } // end function main

1 2 3 4

Broke out of loop when x became 5

Page 50: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

50

break and continue Statements

• continue statement– Used in while, for, do/while– Skips remainder of loop body– Proceeds with next iteration of loop

• while and do/while structure– “Loop-continuation test” evaluated immediately

after the continue statement

• for structure– Increment expression executed– Next, loop-continuation test evaluated

Page 51: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline51

1 // Fig. 2.27: fig02_27.cpp2 // Using the continue statement in a for structure.3 #include <iostream>4 5 using std::cout;6 using std::endl;7 8 // function main begins program execution9 int main()10 {11 // loop 10 times12 for ( int x = 1; x <= 10; x++ ) {13 14 // if x is 5, continue with next iteration of loop15 if ( x == 5 )16 continue; // skip remaining code in loop body17 18 cout << x << " "; // display value of x19 20 } // end for structure21 22 cout << "\nUsed continue to skip printing the value 5" 23 << endl;24 25 return 0; // indicate successful termination

Page 52: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc.All rights reserved.

Outline52

26 27 } // end function main

1 2 3 4 6 7 8 9 10

Used continue to skip printing the value 5

Page 53: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

53

Logical Operators

• Used as conditions in loops, if statements

• && (logical AND)– true if both conditions are true

if ( gender == 1 && age >= 65 )

++seniorFemales;

• || (logical OR)– true if either of condition is true

if ( semesterAverage >= 90 || finalExam >= 90 ) cout << "Student grade is A" << endl;

Page 54: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

54

Logical Operators

• ! (logical NOT, logical negation)– Returns true when its condition is false, & vice

versaif ( !( grade == sentinelValue ) ) cout << "The next grade is " << grade << endl;

Alternative:if ( grade != sentinelValue ) cout << "The next grade is " << grade << endl;

Page 55: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

55

Confusing Equality (==) and Assignment (=) Operators

• Common error– Does not typically cause syntax errors

• Aspects of problem– Expressions that have a value can be used for

decision• Zero = false, nonzero = true

– Assignment statements produce a value (the value to be assigned)

Page 56: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

56

Confusing Equality (==) and Assignment (=) Operators

• Exampleif ( payCode == 4 )

cout << "You get a bonus!" << endl;

– If paycode is 4 bonus given

• If == was replaced with =if ( payCode = 4 ) cout << "You get a bonus!" << endl;

– Paycode set to 4 (no matter what it was before!)– Statement is true (since 4 is non-zero)– Bonus given in every case

Page 57: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

57

Confusing Equality (==) and Assignment (=) Operators

• Lvalues– Expressions that can appear on left side of

equation– Can be changed (i.e., variables)

• x = 4;

• Rvalues– Only appear on right side of equation– Constants, such as numbers (i.e. cannot write 4

= x;)

• Lvalues can be used as rvalues, but not vice versaNOTE: x = 1 and x == 1

Page 58: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

58

Structured-Programming Summary

 

 

Page 59: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

59

Structured-Programming Summary

• Structured programming– Programs easier to understand, test, debug and

modify

• Rules for structured programming– Only use single-entry/single-exit control structures– Rules

1) Begin with the “simplest flowchart”2) Any rectangle (action) can be replaced by two

rectangles (actions) in sequence3) Any rectangle (action) can be replaced by any

control structure (sequence, if, if/else, switch, while, do/while or for)

4) Rules 2 and 3 can be applied in any order and multiple times

 

 

Page 60: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

60

Structured-Programming Summary

Page 61: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

61

Structured-Programming Summary

Page 62: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

62

Structured-Programming Summary

Page 63: 2003 Prentice Hall, Inc. All rights reserved. 1 Control Structures Outline Assignment Operators Increment and Decrement Operators Essentials of Counter-Controlled.

2003 Prentice Hall, Inc. All rights reserved.

63

Structured-Programming Summary

• All programs broken down into– Sequence– Selection

• if, if/else, or switch

• Any selection can be rewritten as an if statement

– Repetition• while, do/while or for• Any repetition structure can be rewritten as a while statement