You are on page 1of 31

CONTROL STRUCTURE in C

Flow of Control
• Unless specified otherwise, the order of statement
execution through a function is linear: one statement after
another in sequence

• Some programming statements allow us to:


– decide whether or not to execute a particular statement
– execute a statement over and over, repetitively

• These decisions are based on boolean expressions (or


conditions) that evaluate to true or false

• The order of statement execution is called


the flow of control
Conditional Statements
• A conditional statement lets us choose which statement
will be executed next

• Therefore they are sometimes called selection


statements

• Conditional statements give us the power to make basic


decisions

• The C conditional statements are the:

– if statement
– if-else statement
– switch statement
Logic of an if statement

condition
evaluated

true
false

statement
The if Statement
• The if statement has the following syntax:
The condition must be a
boolean expression. It must
evaluate to either true or
if is a C
false.
reserved word

if ( condition )
statement;

If the condition is true, the statement is executed.


If it is false, the statement is skipped.
Logic of an if-else statement

condition
evaluated

true false

statement1 statement2
The if-else Statement
• An else clause can be added to an if
statement to make an if-else statement
if ( condition )
statement1;
else
statement2;

• If the condition is true, statement1 is executed;


if the condition is false, statement2 is executed

• One or the other will be executed, but not both


Boolean Expressions
• A condition often uses one of C's equality operators or relational
operators, which all return boolean results:

== equal to
!= not equal to
< less than
> greater than
<= less than or equal to
>= greater than or equal to

• Note the difference between the equality operator (==) and the
assignment operator (=)
Boolean Expressions in C
• C does not have a boolean data type.

• Therefore, C compares the values of variables and


expressions against 0 (zero) to determine if they are true or
false.

• If the value is 0 then the result is implicitly assumed to be


false.

• If the value is different from 0 then the result is implicitly


assumed to be true.

• C++ and Java have boolean data types.


Block Statements
• Several statements can be grouped together
into a block statement delimited by braces

• A block statement can be used wherever a


statement is called for in the C syntax rules
if (total > MAX)
{
printf ("Error!!\n");
errorCount++;
}
Block Statements
• In an if-else statement, the if portion,
or the else portion, or both, could be block
statements
if (total > MAX)
{
printf("Error!!");
errorCount++;
}
else
{
printf ("Total: %d“, total);
current = total*2;
}
Nested if Statements
• The statement executed as a result of an if statement or
else clause could be another if statement

• These are called nested if statements

• An else clause is matched to the last unmatched if (no


matter what the indentation implies)

• Braces can be used to specify the if statement to which an


else clause belongs
The switch Statement
• The switch statement provides another way to
decide which statement to execute next

• The switch statement evaluates an expression, then


attempts to match the result to one of several
possible cases

• Each case contains a value and a list of statements

• The flow of control transfers to statement associated


with the first case value that matches

© 2004 Pearson Addison-Wesley. All rights reserved


The switch Statement
• Often a break statement is used as the last
statement in each case's statement list

• A break statement causes control to transfer to the


end of the switch statement

• If a break statement is not used, the flow of control


will continue into the next case

• Sometimes this may be appropriate, but often we


want to execute only the statements associated with
one case
The switch Statement
• An example of a switch statement:
switch (option)
{
case 'A':
aCount++;
break;
case 'B':
bCount++;
break;
case 'C':
cCount++;
break;
default:
otherCount++;
break;
}
The switch Statement
• A switch statement can have an optional default
case

• The default case has no associated value and simply


uses the reserved word default

• If the default case is present, control will transfer to


it if no other case value matches

• If there is no default case, and no other value


matches, control falls through to the statement after
the switch
The switch Statement
• The expression of a switch statement must result
in an integral type, meaning an integer (byte,
short, int,) or a char

• It cannot be a floating point value (float or


double)

• The implicit test condition in a switch statement is


equality

• You cannot perform relational checks with a


switch statement
The switch Statement
• The general syntax of a switch statement
is:switch switch ( expression )
and {
case case value1 :
are statement-list1
reserved case value2 :
words statement-list2
case value3 :
statement-list3 If expression
case ... matches value2,
control jumps
} to here
Repetition in Programs
• In most software, the statements in the
program may need to repeat for many times.
– e.g., calculate the value of n!.
– If n = 10000, it’s not elegant to write the code as
1*2*3*…*10000.
• Loop is a control structure that repeats a group
of steps in a program.
– Loop body stands for the repeated statements.
• There are three C loop control statements:
– while, for, and do-while. 5-19
Flow Diagram of Loop Choice Process

e.g., read the content in a file

e.g., calculate the value of n!


Copyright ©2004 Pearson Addison-Wesley.
5-20
All rights reserved.
Comparison of Loop Choices (1/2)
Kind When to Use C Structure
Counting loop We know how many loop while, for
repetitions will be needed
in advance.
Sentinel- Input of a list of data ended while, for
controlled loop by a special value
Endfile- Input of a list of data from while, for
controlled loop a data file

5-21
Comparison of Loop Choices (2/2)
Kind When to Use C Structure
Input validation Repeated interactive input do-while
loop of a value until a desired
value is entered.
General Repeated processing of while, for
conditional data until a desired
loop condition is met.

5-22
The while Statement in C
• The syntax of while statement in C:
while (loop repetition condition)
condition
statement
• Loop repetition condition is the condition
which controls the loop.
• The statement is repeated as long as the loop
repetition condition is true.
true
• A loop is called an infinite loop if the loop
repetition condition is always true.
5-23
An Example of a while Loop
Loop repetition condition

Statement

Loop control variable is the variable whose value controls


loop repetition.
In this example, count_emp is the loop control variable.
5-24
Flowchart for a while Loop

Loop repetition condition

Statement
5-25
The for Statement in C
• The syntax of for statement in C:
for (initialization expression;
expression
loop repetition condition;
condition
update expression)
expression
statement
• The initialization expression set the initial value of the
loop control variable.
• The loop repetition condition test the value of the
loop control variable.
• The update expression update the loop control
variable. 5-26
An Example of the for Loop
Initialization Expression

Loop repetition condition

Update Expression

count_emp is set to 0 initially.


count_emp should not exceed the value of number_emp.

count_emp is increased by one after each iteration.


5-27
Increment and Decrement Operators
• The statements of increment and decrement
are commonly used in the for loop.
• The increment (i.e., ++)
++ or decrement (i.e., --)
--
operators are the frequently used operators
which take only one operand.
• The increment/decrement operators increase or
decrease the value of the single operand.
– e.g., for (int i = 0; i < 100; i++){
i++ … }
– The variable i increase one after each iteration.
5-28
Comparison of Prefix and Postfix
Increments
The value of the expression (that uses the ++/-- operators)
depends on the position of the operator.

The value The value


of j is of j is not
increased increased

Copyright ©2004 Pearson Addison-Wesley.


5-29
All rights reserved.
The do-while Statement in C
• The syntax of do-while statement in C:
do
statement
while (loop repetition condition);
condition
• The statement is first executed.
• If the loop repetition condition is true, the
statement is repeated.
• Otherwise, the loop is exited.
5-30
An Example of the do-while Loop
/* Find even number input */
do{
printf(“Enter a value: ”);
scanf(“%d”, &num);
}while (num % 2 !=0)
This loop will repeat if the user
inputs odd number.

5-31

You might also like