|
|
|
Flow of control is the order in which the
computer executes statements in a program. |
|
Flow of control is normally sequential. |
|
Control structures allow for non-sequential flow
of control. |
|
The first control structure we are going to look
at is a selection control structure. |
|
|
|
|
|
|
|
|
|
|
The If-Then-Else Form |
|
IfStatement (the If-Then-Else form) |
|
if (Expression) |
|
Statement1A |
|
else |
|
Statement1B |
|
|
|
|
|
|
|
|
|
|
|
|
The If-Then-Else Form |
|
IfStatement (the If-Then-Else form) |
|
if (Expression) |
|
Statement1A |
|
else |
|
Statement1B |
|
The If-Then Form |
|
IfStatement
(the If-Then form) |
|
if (Expression) |
|
Statement1A |
|
|
|
|
|
Asking questions in C++ means making an
assertion that is either true or false. |
|
The computer evaluates the assertion. |
|
We have a new data type that is used in
assertions, bool. It has two possible values true and false. |
|
We declare variables of type bool in the same
way we declare variables of other types. |
|
Example bool dataOK; |
|
|
|
|
|
Assertions take the form of logical expressions,
they evaluate to either true or false. |
|
Examples |
|
Boolean variable or constant |
|
An expression followed by a relational operator
followed by an expression. |
|
A logical expression followed by a logical
operator followed by a logical expression. |
|
|
|
|
|
|
|
|
|
Relational Operators test the relationship
between two values. |
|
Example bool
lessThan; int i, j; |
|
cin >> i >> j; |
|
lessThan = (i < j); |
|
Operators |
|
== Equal to |
|
!= Not equal to |
|
> Greater than |
|
< Less than |
|
>= Greater than or equal to |
|
<= Less than or equal to |
|
|
|
|
|
|
x y Expression Result |
|
12 2 x + 3 <= y * 10 true |
|
|
|
|
|
|
|
|
|
|
|
Caution: The relational operator, ==, and the
assignment operator, =, are not the same. |
|
|
|
|
|
|
x y Expression Result |
|
12 2 x + 3 <= y * 10 true |
|
20 2 x + 3 <= y * 10 false |
|
|
|
|
|
|
|
|
|
Caution: The relational operator, ==, and the
assignment operator, =, are not the same. |
|
|
|
|
|
|
x y Expression Result |
|
12 2 x + 3 <= y * 10 true |
|
20 2 x + 3 <= y * 10 false |
|
7 1 x + 3 != y * 10 false |
|
|
|
|
|
|
|
Caution: The relational operator, ==, and the
assignment operator, =, are not the same. |
|
|
|
|
|
|
x y Expression Result |
|
12 2 x + 3 <= y * 10 true |
|
20 2 x + 3 <= y * 10 false |
|
7 1 x + 3 != y * 10 false |
|
17 2 x + 3 == y * 10 true |
|
|
|
|
|
Caution: The relational operator, ==, and the
assignment operator, =, are not the same. |
|
|
|
|
|
|
x y Expression Result |
|
12 2 x + 3 <= y * 10 true |
|
20 2 x + 3 <= y * 10 false |
|
7 1 x + 3 != y * 10 false |
|
17 2 x + 3 == y * 10 true |
|
100 5 x + 3 > y * 10 true |
|
|
|
Caution: The relational operator, ==, and the
assignment operator, =, are not the same. |
|
|
|
|
|
|
The binary AND operator (&&) requires
both relationships to be true in order for the overall result to be true. |
|
The binary OR operator (||) has an overall
result of true if either or both of two logical expressions are true. |
|
The unary NOT operator (!) has a result of true
if the logical expression is false. |
|
|
|
|
! Unary + Unary - Highest precedence |
|
/ % * |
|
+ - |
|
<
<= > >= |
|
== != |
|
&& |
|
|| |
|
= Lowest precedence |
|
|
|
|
|
Do not compare floating-point numbers for
equality. Remember that the binary representations of floating-point
numbers are approximations. Instead, test for near equality. |
|
Example: fabs(r – s) < 0.00001 |
|
|
|
|
|
if (hours <= 40.0) |
|
pay = rate * hours; |
|
else |
|
pay = rate * (40.0 + (hours – 40.0) * 1.5); |
|
cout << pay; |
|
|
|
|
|
|
|
|
|
|
|
if (hours <= 40.0) |
|
pay = rate * hours; |
|
else |
|
pay = rate * (40.0 + (hours – 40.0) * 1.5); |
|
cout << pay; |
|
|
|
|
|
if (divisor != 0) |
|
result = dividend / divisor; |
|
else |
|
cout << “Division by zero is not allowed.
“ << endl; |
|
|
|
|
Anywhere one statement can be used, a series of
statements can be used, they must be enclosed in braces {}. |
|
Example: |
|
if
(divisor != 0) |
|
{ |
|
result = dividend / divisor; |
|
cout << “Division performed.” << endl; |
|
} |
|
else |
|
{ |
|
cout << “Division by zero is not allowed.” << endl; |
|
result = 9999; |
|
} |
|
|
|
|
|
|
|
if (age < 18) |
|
cout << “Not an eligible”; |
|
cout << “voter.” << endl; |
|
|
|
|
|
|
|
|
|
if (age < 18) |
|
cout << “Not an eligible”; |
|
cout << “voter.” << endl; |
|
|
|
if (result < 0.0) |
|
{ |
|
cout << “Check box 24A” << endl; |
|
result = 0.0; |
|
} |
|