Chap04 Conditional

Upload
elaybeeue 
Category
Documents

view
234 
download
0
Embed Size (px)
Transcript of Chap04 Conditional

8/2/2019 Chap04 Conditional
1/28
1
If Control Construct
A mechanism for deciding whether anaction should be taken
JPC and JWD 2002 McGrawHill, Inc.

8/2/2019 Chap04 Conditional
2/28
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 the19th century
Three key logical operators
And
Or
Not

8/2/2019 Chap04 Conditional
3/28
Boolean Algebra
Truth tables
Lists all combinations of operand values and the result of theoperation for each combination
Example
P Q P and Q
False False False
False True FalseTrue False False
True True True

8/2/2019 Chap04 Conditional
4/28
Boolean Algebra
Or truth table
P Q P or Q
False False False
False True True
True False True
True True True

8/2/2019 Chap04 Conditional
5/28
Boolean Algebra
Not truth table
P not P
False True
True False

8/2/2019 Chap04 Conditional
6/28
Boolean Algebra
Can create complex logical expressions by combining simplelogical expressions
Example
not (P and Q)
A truth table can be used to determine when a logicalexpression 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

8/2/2019 Chap04 Conditional
7/28
A Boolean Type
C++ contains a type namedbool
Typebool has two symbolic constants
true
false
Boolean operators
The and operator is &&
The or operator is 
Thenot
operator is !
Warning
& and  are also operators so be careful what you type

8/2/2019 Chap04 Conditional
8/28
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));

8/2/2019 Chap04 Conditional
9/28
Relational Operators
Equality operators
==
!=
Examples
int i = 32;
int k = 45;
bool q = (i == k);
bool r = (i != k);

8/2/2019 Chap04 Conditional
10/28
Relational Operators
Ordering operators
>=
i);
bool r = (i >= k);
bool s = (k

8/2/2019 Chap04 Conditional
11/28
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

8/2/2019 Chap04 Conditional
12/28
Operator Precedence Revisited
Consider5 * 15 + 4 == 13 && 12 < 19  !false == 5 < 24

8/2/2019 Chap04 Conditional
13/28
Operator Precedence Revisited
Consider5 * 15 + 4 == 13 && 12 < 19  !false == 5 < 24
Yuck! Do not write expressions like this!

8/2/2019 Chap04 Conditional
14/28
Operator Precedence Revisited
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 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))
Consider5 * 15 + 4 == 13 && 12 < 19  !false == 5 < 24
However, for your information it is equivalent to

8/2/2019 Chap04 Conditional
15/28
Conditional Constructs
Provide
Ability to control whether a statement list is executed
Two constructs
If statement
if
ifelse
ifelseif
Switch statement
Left for reading

8/2/2019 Chap04 Conditional
16/28
The Basic If Statement
Syntax
if(Expression)Action
If the Expressionis true thenexecuteAction
Actionis either a single
statement or a group ofstatements within braces
Expression
Action
true false

8/2/2019 Chap04 Conditional
17/28
Example
if (Value < 0) {
Value = Value;
}
Value < 0
Value = Value
true fa lse
Is our number negative?
If Value is not less
than zero then ournumber is fine as is
If Value is less thanzero then we need toupdate its value tothat of its additive
inverse
Our number isnow definitelynonnegative

8/2/2019 Chap04 Conditional
18/28
Sorting Two Numbers
cout > Value1 >> Value2;if (Value1 > Value2) {
int RememberValue1 = Value1;
Value1 = Value2;
Value2 = RememberValue1;
}
cout

8/2/2019 Chap04 Conditional
19/28
Semantics
value2 < value1
int rememberValue1 = value1
value1 = value2
value2 = rememberValue1
true false
Are the numbersout of order
Rearrange value1and value2 to
put their values
in the proper
order
The numbers w ere
initially in order
The numbers were
rearranged into theproper order
The numbers are in
order

8/2/2019 Chap04 Conditional
20/28
What is the Output?
int m = 5;
int n = 10;
if (m < n)++m;
++n;
cout

8/2/2019 Chap04 Conditional
21/28
The IfElse StatementSyntax
if(Expression)Action1
elseAction2
IfExpressionis true then executeAction1otherwise executeAction2
if (v == 0) {
cout

8/2/2019 Chap04 Conditional
22/28
Finding the Max
cout > Value1 >> Value2;int Max;
if (Value1 < Value2) {
Max = Value2;
}
else {
Max = Value1;
}
cout

8/2/2019 Chap04 Conditional
23/28
Finding the Max
Value1 < Value2
Max = Val ue2 Max = Val ue1
true fa lse
Is Value2 larger than Value1
Yes, it is . So Value2 islarger than Value1. Inthis case, Max is set
to Value2
No, its not. So Value1is at least as large asValue2. In this case,Max is set to Value1
Either case, Max is setcorrectly

8/2/2019 Chap04 Conditional
24/28
Selection
It is often the case that depending upon the value of anexpression we want to perform a particular action
Two major ways of accomplishing this choice
ifelseif statement
ifelse statements glued together
Switch statement
An advanced construct

8/2/2019 Chap04 Conditional
25/28
An IfElseIf Statement
if ( nbr < 0 ){
cout

8/2/2019 Chap04 Conditional
26/28
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

8/2/2019 Chap04 Conditional
27/28
cout > Left >> Operator >> Right;
cout

8/2/2019 Chap04 Conditional
28/28