
Chapter 2 ABSOLUTE C++ Flow of Control WALTER SAVITCH SECOND EDITION PEARSON Copyright2006 Pearson Addison-Wesley All rights reserved
Chapter 2 Flow of Control

Learning Objectives Boolean Expressions Building,Evaluating Precedence Rules Branching Mechanisms ◆if-else ◆switch ◆Nesting if-.else ◆Loops ◆Vhile,do-while,for ◆Nesting loops Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-2
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-2 Learning Objectives ¨ Boolean Expressions ¨ Building, Evaluating & Precedence Rules ¨ Branching Mechanisms ¨ if-else ¨ switch ¨ Nesting if-else ¨ Loops ¨ While, do-while, for ¨ Nesting loops

Boolean Expressions: Display 2.1 Comparison Operators ◆Logical Operators ·Logical AND(&&) ·Logical OR(Il) Display 2.1 Comparison Operators MATH ENGLISH C++NOTATION C++SAMPLE MATH SYMBOL EQUIVALENT Equal to X+7==2*y ×+7=2y Not equal to I= ans !='n' ans≠'nl Less than age>=21 age≥2l or equal to Copyright 2006 Pearson Addison-Wesley.All rights reserved. 23
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-3 Boolean Expressions: Display 2.1 Comparison Operators ¨ Logical Operators ¨ Logical AND (&&) ¨ Logical OR (||)

Evaluating Boolean Expressions ◆Data type bool ◆Returns true or false true,false are predefined library consts ◆Truth tables Display 2.2 next slide Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-4
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-4 Evaluating Boolean Expressions ¨ Data type bool ¨Returns true or false ¨true, false are predefined library consts ¨ Truth tables ¨Display 2.2 next slide

Evaluating Boolean Expressions: Display 2.2 Truth Tables Display 2.2 Truth Tables AND Exp_1 Exp_2 Exp_1 &Exp_2 true true true true false false NOT false true false false false false Exp !(Exp) true false OR false true Exp_1 Exp_2 Exp_Exp_2 true true true true false true false true true false false false Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-5
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-5 Evaluating Boolean Expressions: Display 2.2 Truth Tables

Display 2.3 Precedence of Operators(1 of 4) Display 2.3 Precedence of Operators Highest precedence Scope resolution operator (done first) Dot operator Member selection Array indexing Function call Postfix increment operator(placed after the variable) Postfix decrement operator(placed after the variable) + Prefix increment operator (placed before the variable) ! Prefix decrement operator(placed before the variable) Not +★ Unary minus Unary plus Dereference & Address of new Create (allocate memory) delete Destroy (deallocate) delete[] Destroy array (deallocate) sizeof Size of object () Type cast Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-6
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-6 Display 2.3 Precedence of Operators (1 of 4)

Display 2.3 Precedence of Operators(2 of 4) Multiply Divide % Remainder (modulo) Lower precedence Addition (done later) Subtraction Extraction operator(console input) Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-7
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-7 Display 2.3 Precedence of Operators (2 of 4)

Display 2.3 Precedence of Operators(3 of 4) Display 2.3 Precedence of Operators All operators in part 2 are of lower precedence than those in part 1. = Greater than or equal to Equal = Not equal & And Or Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-8
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-8 Display 2.3 Precedence of Operators (3 of 4)

Display 2.3 Precedence of Operators(4 of 4) = Assignment += Add and assign Subtract and assign * Multiply and assign Divide and assign % Modulo and assign Lowest precedence (done last) ?: Conditional operator throw Throw an exception Comma operator Copyright006 Pearson Addison-Wesley.All rights reserved. 2-9
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-9 Display 2.3 Precedence of Operators (4 of 4)

Precedence Examples Arithmetic before logical ◆x+1>2lx+12‖(仪+1)=0)&&(y>1) ◆Be careful with increment operators! ◆(X>1)&&(y++) Integers as boolean values ◆All non-zero values→true ◆Zero value→false Copyright 2006 Pearson Addison-Wesley.All rights reserved. 2-10
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-10 Precedence Examples ¨ Arithmetic before logical ¨ x + 1 > 2 || x + 1 2 || (x + 1) = 0) && (y > 1) ¨ Be careful with increment operators! ¨ (x > 1) && (y++) ¨ Integers as boolean values ¨ All non-zero values true ¨ Zero value false