Top Banner
CONTROL STATEMENTS Anil Dutt
40

Control statements anil

Jul 19, 2015

Download

Engineering

Anil Dutt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Control statements anil

CONTROL STATEMENTS

Anil Dutt

Page 2: Control statements anil

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

Page 3: Control statements anil

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

Page 4: Control statements anil

Logic of an if statement

condition

evaluated

statement

true false

Page 5: Control statements anil

The if Statement • The if statement has the following syntax:

if ( condition )

statement;

if is a C

reserved word

The condition must be a

boolean expression. It must

evaluate to either true or false.

If the condition is true, the statement is executed.

If it is false, the statement is skipped.

Page 6: Control statements anil

For example:

if (hours > 70)

hours = hours + 100;

printf("Less hours, no bonus!\n");

If hours is less than or equal to 70, its value will remain unchanged and the printf() will

be executed.

If it exceeds 70, its value will be increased by 100.

if(jobCode == '1')

{

carAllowance = 100.00;

housingAllowance = 500.00;

entertainmentAllowance = 300.00;

}

printf("Not qualified for car, housing and entertainment allowances!");

The three statements enclosed in the curly braces { } will only be executed if jobCode is equal

to '1', else the printf() will be executed.

Page 7: Control statements anil

Logic of an if-else statement

condition

evaluated

statement1

true false

statement2

Page 8: Control statements anil

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

Page 9: Control statements anil

For example:

if(myCode == '1')

rate = 7.20;

else

rate = 12.50;

If myCode is equal to '1', the rate is 7.20 else, if myCode

is not equal to '1' the rate is 12.50.

Anil Dutt

Equal/not equal (=) is not a value comparison, but a character comparison!!!

Page 10: Control statements anil

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 (=)

Page 11: Control statements anil

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.

Page 12: Control statements anil

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++;

}

Page 13: Control statements anil

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;

}

Page 14: Control statements anil

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

Page 15: Control statements anil

The if-else constructs can be nested (placed one within another) to any depth.

General forms: if-if-else and if-else-if.

The if-if-else constructs has the following form (3 level of depth example),

if(condition_1)

if(condition_2)

if(condition_3)

statement_4;

else

statement_3;

else

statement_2;

else

statement_1;

next_statement;

Anil Dutt

Page 16: Control statements anil

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

Page 17: Control statements anil

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

Page 18: Control statements anil

The switch Statement

switch (option)

{

case 'A':

aCount++;

break;

case 'B':

bCount++;

break;

case 'C':

cCount++;

break;

default:

otherCount++;

break;

}

• An example of a switch statement:

Page 19: Control statements anil

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

Page 20: Control statements anil

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

Page 21: Control statements anil

The switch Statement • The general syntax of a switch statement

is: switch ( expression )

{

case value1 :

statement-list1

case value2 :

statement-list2

case value3 :

statement-list3

case ...

}

switch

and case

are

reserved

words

If expression

matches value2,

control jumps

to here

Page 22: Control statements anil
Page 23: Control statements anil

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-23

Page 24: Control statements anil

Flow Diagram of Loop Choice Process

5-24

e.g., calculate the value of n!

e.g., read the content in a file

Page 25: Control statements anil

Comparison of Loop Choices (1/2)

Kind When to Use C Structure

Counting loop We know how many loop repetitions

will be needed in advance.

while, for

Sentinel-controlled

loop

Input of a list of data ended by a special

value

while, for

Endfile-controlled

loop

Input of a list of data from a data file while, for

5-25

Page 26: Control statements anil

Comparison of Loop Choices (2/2)

Kind When to Use C Structure

Input validation

loop

Repeated interactive input of a value

until a desired value is entered.

do-while

General

conditional

loop

Repeated processing of data until a

desired condition is met.

while, for

5-26

Page 27: Control statements anil

The while Statement in C

• The syntax of while statement in C:

while (loop repetition 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.

• A loop is called an infinite loop if the loop repetition condition is always true.

5-27

Page 28: Control statements anil

An Example of a while Loop

5-28

Statement

Loop repetition condition

Loop control variable is the variable whose value controls loop

repetition.

In this example, count_emp is the loop control variable.

Page 29: Control statements anil

Flowchart for a while Loop

5-29

Loop repetition condition

Statement

Page 30: Control statements anil

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

Page 31: Control statements anil

Compound Assignment Operators (2/2)

Simple Assignment Operators Compound Assignment

Operators

count_emp = count_emp +

1;

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;

5-31

Page 32: Control statements anil

The for Statement in C • The syntax of for statement in C:

for (initialization expression;

loop repetition condition;

update 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-32

Page 33: Control statements anil

An Example of the for Loop

5-33

Loop repetition condition

Initialization Expression

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.

Page 34: Control statements anil

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++){ … }

– The variable i increase one after each iteration.

5-34

Page 35: Control statements anil

Comparison of Prefix and Postfix Increments

Copyright ©2004 Pearson Addison-Wesley. All

rights reserved. 5-35

The value of the expression (that uses the ++/-- operators) depends on

the position of the operator.

The value of

j is increased

The value of

j is not

increased

Page 36: Control statements anil

Nested Loops • Nested loops consist of an outer loop with one or more

inner loops.

• e.g.,

for (i=1;i<=100;i++){

for(j=1;j<=50;j++){

}

}

• The above loop will run for 100*50 iterations.

5-36

Inner loop

Outer loop

Page 37: Control statements anil

The do-while Statement in C

• The syntax of do-while statement in C:

do

statement while (loop repetition condition);

• The statement is first executed.

• If the loop repetition condition is true, the statement is repeated.

• Otherwise, the loop is exited.

5-37

Page 38: Control statements anil

An Example of the do-while Loop

/* Find even number input */

do{

printf(“Enter a value: ”);

scanf(“%d”, &num);

}while (num % 2 !=0)

5-38

This loop will repeat if the user

inputs odd number.

Page 39: Control statements anil
Page 40: Control statements anil