0% found this document useful (0 votes)
20 views

Programming in C: Flow of Control

Uploaded by

Abdur Razaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Programming in C: Flow of Control

Uploaded by

Abdur Razaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

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

You might also like