You are on page 1of 34

CONTROL

STATEMENTS
LVENUGOPALREDDY
Lect.InComputerScience

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
statement

false

The if Statement
The if statement has the following syntax:

if is a C
reserved word

The condition must be a


boolean expression. It must
evaluate to either true or
false.
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
statement1

false
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
if (total > MAX)
A block statement
can be used wherever a
{
printf
("Error!!\n");
statement is
called
for in the C syntax
errorCount++;
rules }

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
and
case
are
reserved
words

switch ( expression )
{
case value1 :
statement-list1
case value2 :
statement-list2
case value3 :
statement-list3
case ...
}

If expression
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, its 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.

519

Flow Diagram of Loop Choice


Process

e.g.,readthecontentinafile

e.g.,calculatethevalueofn!

Copyright2004PearsonAddisonWesley.
Allrightsreserved.

520

Comparison of Loop Choices


(1/2)
Kind
Counting loop

When to Use
We know how many loop
repetitions will be needed
in advance.

C Structure
while, for

SentinelInput of a list of data ended while, for


controlled loop by a special value
EndfileInput of a list of data from
controlled loop a data file

while, for

521

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
conditional
loop

Repeated processing of
data until a desired
condition is met.

while, for

522

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.
523

An Example of a while Loop


Looprepetitioncondition

Statement

Loop control variable is the variable whose value controls


loop repetition.
In this example, count_emp is the loop control variable.
524

Flowchart for a while Loop


Looprepetitioncondition

Statement
525

Compound Assignment Operators


(1/2)
The loop body usually consists of
statements of the form: variable = variable
op expression.
e.g., count_emp = count_emp + 1;

C provides compound assignment


operators which enable a more concise
notation for this kind of statements.
variable op = expression is the same to
variable = variable op expression.

Compound Assignment Operators


(2/2)
Simple Assignment
Operators
count_emp =
count_emp + 1;

Compound Assignment
Operators
count_emp += 1;

time = time -1;

time -= 1;

product = product *
item;

product *= item;

total = total /
number;

total /= number;

n = n % (x+1);

n %= x+1;
527

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.
528

An Example of the for Loop


InitializationExpression
Looprepetitioncondition
UpdateExpression

count_emp is set to 0 initially.


count_emp should not exceedthevalueofnumber_emp.
count_empisincreasedbyoneaftereachiteration.
529

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.
530

Comparison of Prefix and Postfix


Increments
Thevalueoftheexpression(thatusesthe++/operators)
dependsonthepositionoftheoperator.

Thevalue
ofjis
increased

Thevalue
ofjisnot
increased

Copyright2004PearsonAddisonWesley.
Allrightsreserved.

531

Nested Loops
Nested loops consist of an outer loop with
one or more inner loops.
loops
e.g.,
Outerloop
for (i=1;i<=100;i++){
for(j=1;j<=50;j++){

Innerloop
}
}
The above loop will run for 100*50 iterations.
532

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.
533

An Example of the do-while Loop


/* Find even number input */
do{
printf(Enter a value: );
scanf(%d, &num);
}while (num % 2 !=0)
Thisloopwillrepeatiftheuser
inputsoddnumber.

534

You might also like