0% found this document useful (0 votes)
37 views28 pages

If Control Construct: A Mechanism For Deciding Whether An Action Should Be Taken

Uploaded by

Ian Herrera
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views28 pages

If Control Construct: A Mechanism For Deciding Whether An Action Should Be Taken

Uploaded by

Ian Herrera
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 28

If Control Construct

A mechanism for deciding whether an


action should be taken

JPC and JWD © 2002 McGraw-Hill, Inc.


1
Boolean Algebra
Logical expressions have the one of two values - true or false
 A rectangle has three sides

 The instructor has a pleasant smile

The branch of mathematics is called Boolean algebra


 Developed by the British mathematician George Boole in the

19th century

Three key logical operators


 And

 Or

 Not
Boolean Algebra
Truth tables
 Lists all combinations of operand values and the result of

the operation for each combination

Example

P Q P and Q

False False False


False True False
True False False
True True True
Boolean Algebra
Or truth table

P Q P or Q

False False False


False True True
True False True
True True True
Boolean Algebra
Not truth table

P not P

False True
True False
Boolean Algebra
Can create complex logical expressions by combining simple
logical expressions

Example
 not (P and Q)

A truth table can be used to determine when a logical


expression is true
P Q P and Q not (P and Q)

False False False True


False True False True
True False False True
True True True False
A Boolean Type
C++ contains a type named bool
Type bool has two symbolic constants
 true

 false

Boolean operators
 The and operator is &&

 The or operator is ||

 The not operator is !

Warning
 & and | are also operators so be careful what you type
A Boolean Type
Example logical expressions

bool P = true;
bool Q = false;
bool R = true;
bool S = (P && Q);
bool T = ((!Q) || R);
bool U = !(R && (!Q));
Relational Operators
Equality operators
 ==

 !=

Examples
 int i = 32;

 int k = 45;

 bool q = (i == k);

 bool r = (i != k);
Relational Operators
Ordering operators
 <

 >

 >=

 <=

Examples
 int i = 5;

 int k = 12;

 bool p = (i < 10);


 bool q = (k > i);
 bool r = (i >= k);
 bool s = (k <= 12);
Operator Precedence Revisited
Precedence of operators (from highest to lowest)
 Parentheses
 Unary operators
 Multiplicative operators
 Additive operators
 Relational ordering
 Relational equality
 Logical and
 Logical or
 Assignment
Operator Precedence Revisited
Consider
5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24
Operator Precedence Revisited
Consider
5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

Yuck! Do not write expressions like this!


Operator Precedence Revisited
Consider
5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

 However, for your information it is equivalent to


((((5 *15) + 4) == 13) && (12 < 19))
||
((!false) == (5 < 24))
Conditional Constructs
Provide
 Ability to control whether a statement list is executed

Two constructs
 If statement
 if
 if-else
 if-else-if

 Switch statement
 Left for reading
The Basic If Statement
Syntax
if (Expression)
Action
Expression
If the Expression is true then
execute Action
true false

Action is either a single


statement or a group of Action
statements within braces
Example
if (Value < 0) {
Is our number negative?
Value = -Value;
}
If Value is less than Value < 0
zero then we need to
update its value to
true false
that of its additive
inverse If Value is not less
than zero then our
Value = -Value number is fine as is

Our number is
now definitely
nonnegative
Sorting Two Numbers
cout << "Enter two integers: ";
int Value1;
int Value2;
cin >> Value1 >> Value2;
if (Value1 > Value2) {
int RememberValue1 = Value1;
Value1 = Value2;
Value2 = RememberValue1;
}
cout << "The input in sorted order: "
<< Value1 << " " << Value2 << endl;
Semantics Are the numbers
out of order
Rearrange value1
and value2 to value2 < value1
put their values
in the proper
order true false

int rememberValue1 = value1


value1 = value2
value2 = rememberValue1

The numbers were


rearranged into the
proper order
The numbers were
initially in order
The numbers are in
order
What is the Output?
int m = 5;
int n = 10;

if (m < n)
++m;
++n;

cout << " m = " << m << " n = " n << endl;
The If-Else Statement
Syntax

if (Expression)
Action1
else
Action2 Expression
If Expression is true then execute
Action1 otherwise execute Action2 true false

if (v == 0) {
cout << "v is 0"; Action1 Action2
}
else {
cout << "v is not 0";
}
Finding the Max
cout << "Enter two integers: ";
int Value1;
int Value2;
cin >> Value1 >> Value2;
int Max;
if (Value1 < Value2) {
Max = Value2;
}
else {
Max = Value1;
}
cout << "Maximum of inputs is: " << Max << endl;
Finding the Max Is Value2 larger than Value1

Yes, it is . So Value2 is
larger than Value1. In
this case, Max is set No, its not. So Value1
to Value2 is at least as large as
Value2. In this case,
Value1 < Value2 Max is set to Value1
true false

Max = Value2 Max = Value1

Either case, Max is set


correctly
Selection
It is often the case that depending upon the value of an
expression we want to perform a particular action

Two major ways of accomplishing this choice


 if-else-if statement
 if-else statements “glued” together

 Switch statement
 An advanced construct
An If-Else-If Statement
if ( nbr < 0 ){
cout << nbr << " is negative" << endl;
}
else if ( nbr > 0 ) {
cout << nbr << " is positive" << endl;
}
else {
cout << nbr << " is zero" << endl;
}
A Switch Statement
switch (ch) {
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U':
cout << ch << " is a vowel" << endl;
break;
default:
cout << ch << " is not a vowel" << endl;
}
cout << "Enter simple expression: ";
int Left;
int Right;
char Operator;
cin >> Left >> Operator >> Right;
cout << Left << " " << Operator << " " << Right
<< " = ";
switch (Operator) {
case '+' : cout << Left + Right << endl; break;
case '-' : cout << Left - Right << endl; break;
case '*' : cout << Left * Right << endl; break;
case '/' : cout << Left / Right << endl; break;
default: cout << "Illegal operation" << endl;
}

You might also like