V3 1/3/2015
Programming in C
Flow of Control
Flow of control
The order in which statements are executed
Transfer of control
When the next statement
executed is not the next
one in sequence
Flow of Control
Control structures
combination of individual statements into a logical unit
that regulates the flow of execution in a program or
function
Sequence
Selection (Making Decisions)
Repetition (Looping)
111 Ch 06 1
V3 1/3/2015
Boolean Expressions
Evaluate to true or false
Forms
Relational expression: <expr> <relational operator> <expr>
Examples:
7 < 5
a + b > 6
Logical expression: <Boolean expr> <logical operator> <Boolean expr>
Examples:
(x < 7) && (y > 3)
Relational Operators
Standard Algebraic C Relational C Condition
Relational Operator Operator Example Meaning of C Condition
Inequality
< < x<y x is less than y
<= x <= y x is less than or equal to y
> > x>y x is greater than y
>= x >= y x is greater than or equal to y
Equality
= == x == y x is equal to y
!= x != y x is not equal to y
4th: Ch 4 p. 46
3rd: Ch 5 p. 46
Logical Operators (Compound Relationals)
Ch 6 p. 72
&& (logical AND)
Returns true if both conditions are true
|| (logical OR)
Returns true if either of its conditions is true
! (logical NOT, logical negation)
Is a unary operator, only takes one operand following
Reverses the truth/falsity of its condition
Returns true when its condition is false
111 Ch 06 2
V3 1/3/2015
Logical Operators Truth Table
P Q P && Q P || Q !P
true true true true false
true false false true false
false true false true true
false false false false true
Precedence of Operators
1. (), []
2. Unary +, unary -, !, ++, --
3. Type casting
4. * , / , %
5. + , -
6. <, <=, >, >=
7. ==, !=
8. &&
9. ||
10. =
The if Selection Structure
Selection structure
used when we want the computer to choose between
two alternative courses of action
111 Ch 06 3
V3 1/3/2015
The if Selection Structure
if Statement
true
Boolean
Expression
false true block
10
The if Selection Structure
General form of if:
if (Boolean Expression)
{
statement1;
statement2;
...
}
11
The if-else Selection Structure
if
Only performs an action if the condition is true
if-else
A different action is performed when condition is
true and when condition is false
12
111 Ch 06 4
V3 1/3/2015
if-else Selection Structure
if-else statement
false true
Boolean
Expression
false block true block
13
The if-else Selection Structure
General form of if-else:
if (expression)
{
statement1A;
statement2A;
...
}
else
{
statement1B;
statement2B;
...
}
14
The if-else Selection Structure
Nested if-else structures
Test for multiple cases by placing if-else selection
structures inside if-else selection structures.
15
111 Ch 06 5
V3 1/3/2015
Nested if-else Structures
16
The if-else-if Construct
Once a condition is met, the rest of the statements are skipped
17
The if-else-if Construct
The standard way to indent the previous code is
18
111 Ch 06 6
V3 1/3/2015
The if-else Selection Structure
Compound statement:
Set of statements within a pair of braces
Example:
19
The if-else Selection Structure
–Without the braces, only one statement is executed.
e.g. given the following code:
• The statement,
will be executed independent of the value of grade.
• The statement,
will execute only if grade is
greater than or equal to 90.
20
The dangling else
Note: the compiler matches an else with the closest unmatched if
The above will be treated as
21
111 Ch 06 7
V3 1/3/2015
The dangling else
If the else is to match the outer if, use braces.
22
if-else Construct
To avoid confusion, and possible errors, it is best to
use braces even for single statements.
However, code will be longer
23
Conditionals
C uses an integer to represent Boolean values
Zero is interpreted as false
Any other integer value is interpreted as true
24
111 Ch 06 8
V3 1/3/2015
Conditionals
is not a syntax error in C.
The expression, n = 0, assigns zero to n and the value of
the expression is 0. Zero is interpreted as false, and the
false branch of the if statement will be taken.
is not a syntax error in C.
The expression assigns 5 to n. 5 is interpreted as true,
and the true branch of the if statement will be taken.
25
Conditionals
Remember to use the == operator to test for equality.
To help catch the error when the equality check
involves a constant, put the constant on the left hand
side of the ==.
For example, use
instead of
Since is not a valid assignment in C, the compiler
will detect this error when == is intended.
26
The switch Multiple-Selection Structure
switch
Useful when variable or expression is tested for multiple
values
Consists of a series of case labels and an optional
default case
27
111 Ch 06 9
V3 1/3/2015
The switch Multiple-Selection Structure
With Breaks
case a case a action(s) break
case b case b action(s) break
case z case z action(s) break
default action(s)
28
The switch Multiple-Selection Structure
Without Breaks
case a case a action(s)
case b case b action(s)
case z case z action(s)
default action(s)
29
switch Statement Syntax
switch (switch_expression)
{
case constant1:
statementSequence1
break;
case constant2:
statementSequence2
break;
…
case constantN:
statementSequenceN
break;
default:
defaultStmtSequence
}
30
111 Ch 06 10
V3 1/3/2015
switch Statement
The switch_expression is compared against the values
constant1, constant2, …, constantN
constant1, constant2, …, constantN must be simple
constants or constant expressions.
Can be a char or an int
Best to use the same type constant as the switch expression
If not, a type conversion will be done.
31
switch Statement Reminder
The switch statement ends
break statement
end of the switch statement
When executing the statements after a case label, it
continues to execute until it reaches a break
statement or the end of the switch.
If you omit the break statements, then after executing
the code for one case, the computer will continue to
execute the code for the next case.
32
Example of
switch
33
111 Ch 06 11
V3 1/3/2015
Programming in C
THE END
34
111 Ch 06 12