decision making & branching

26
© Khalid Nazim S.A. Assistant Professor, Department of Computer Science & Engineering PES School of Engineering, Bangalore -100 Chapter 5 Decision Making & Branching

Upload: api-3723664

Post on 11-Apr-2015

779 views

Category:

Documents


0 download

DESCRIPTION

Author__Khalid Nazim S.A

TRANSCRIPT

Page 1: Decision Making & Branching

© Khalid Nazim S.A.

Assistant Professor,

Department of Computer Science & Engineering

PES School of Engineering, Bangalore -100

Chapter 5 Decision Making

&Branching

Page 2: Decision Making & Branching

IntroductionMany a times we encounter situations where we may change the order of execution of statements based on certain conditions, until certain conditions are met and involves a kind of decision making to see whether a particular condition has been met or not , in this context C language provides decision making capabilities with the help of following statements- 1.If statement2. Switch statement3. Conditional operator statement4. Goto statementSince these statements control the flow / order of execution they are also referred to as control statements/ and popularly known as decision making statements

Page 3: Decision Making & Branching

Entry

TestExpression

True

False

Page 4: Decision Making & Branching

The if statementDetermines whether a statement or block is

executed Implements the selection instructions within

an algorithmDecides what to do by evaluating a Boolean

expression If the expression is true (non-zero), the

statement or block is executed

if ( expression )

statement

Page 5: Decision Making & Branching

What is a statement?

Statements are lines of instructions in the programs ending with a semicolon (;)

A compound statement or block is a series of statements surrounded by braces

{

number = number + 1;

printf("%d\n", number); }

An empty statement is a single semicolon

Page 6: Decision Making & Branching

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Example: oddnum.c

Page 7: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd */

int main()

{

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Page 8: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd */

int main()

{

int number;

printf("Enter an integer: ");

scanf("%d", &number);

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Page 9: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd. */

int main()

{

int number;

printf("Enter an integer: ");

scanf("%d", &number);

if (number % 2 != 0)

{

printf("%d\n", number);

}

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Page 10: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd. */

int main()

{

int number;

printf("Enter an integer: ");

scanf("%d", &number);

if (number % 2 != 0)

{

printf("%d\n", number);

}

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Do not put “then” here!

Page 11: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd. */

int main()

{

int number;

printf("Enter an integer: ");

scanf("%d", &number);

if (number % 2 != 0)

{

printf("%d\n", number);

}

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Do not put semicolon here!

Page 12: Decision Making & Branching

#include <stdio.h>

/* Read in a number, and echo it

if it is odd. */

int main()

{

int number;

printf("Enter an integer: ");

scanf("%d", &number);

if (number % 2 != 0)

{

printf("%d\n", number);

}

return 0;

}

Example: oddnum.c

Read in a number, and print it if it is odd

output “Enter an integer”input number

if (number is odd)then{ output the number}

Page 13: Decision Making & Branching

Notes on if

Common mistake

if (number % 2 != 0); { printf ("%d is an odd ", number); } printf ("number\n");

Page 14: Decision Making & Branching

Notes on if

Common mistake

if (number % 2 != 0); { printf("%d is an odd ", number); } printf("number\n");

No semi-colon here!

The semicolon is an empty statement

Page 15: Decision Making & Branching

Notes on if

Common mistake

if (number = 0) { printf ("%d\n", number); } printf ("%d\n", number);

Page 16: Decision Making & Branching

Notes on ifCommon mistake

if (number = 0) { printf("%d\n", number); } printf("%d\n", number);

Should be ==

Page 17: Decision Making & Branching

Simple if Statement

Syntax:

If (test expression)

{

Statement – block;

}

Statement –x;

TestExpression

?

Statement Block

Statement X

Next Statement

True

False

Page 18: Decision Making & Branching

The IF..ELSE Statement

Syntax:

If (test expression){True block Statement(s);}else{False block Statement(s);}Statement -x

TestExpression

?False- BlockStatement

True- blockStatement

Statement- X

True False

Page 19: Decision Making & Branching

#include <stdio.h>

/* Determine whether an input number is odd or even. */

main(){ int number;

printf("Enter an integer: "); scanf("%d", &number);

if (number % 2 != 0) { printf("%d is an odd number\n", number); }

}

Example: oddeven.c

Read in a number, and determine if it’s odd or even

output “Enter an integer”input number

if (number is odd)then{ output: number “ is an odd number”}else{ output: number “ is an even number”}

Page 20: Decision Making & Branching

#include <stdio.h>

/* Determine whether an input number is odd or even. */

main(){ int number;

printf("Enter an integer: "); scanf("%d", &number);

if (number % 2 != 0) { printf("%d is an odd number\n", number); } else { printf("%d is an even number\n", number); }}

Example: oddeven.c

Read in a number, and determine if it’s odd or even

output “Enter an integer”input number

if (number is odd)then{ output: number “ is an odd number”}else{ output: number “ is an even number”}

Page 21: Decision Making & Branching

#include <stdio.h>

/* Determine whether an input number is odd or even. */

main(){ int number;

printf("Enter an integer: "); scanf("%d", &number);

if (number % 2 != 0) { printf("%d is an odd number\n", number); } else { printf("%d is an even number\n", number); }}

Example: oddeven.c

Read in a number, and determine if it’s odd or even

output “Enter an integer”input number

if (number is odd)then{ output: number “ is an odd number”}else{ output: number “ is an even number”}

No semicolons

here!

Page 22: Decision Making & Branching

#include <stdio.h>

/* Determine whether an input number is odd or even. */

main(){ int number;

printf("Enter an integer: "); scanf("%d", &number);

if (number % 2 != 0) { printf("%d is an odd number\n", number); } else { printf("%d is an even number\n", number); }}

Example: oddeven.c

Read in a number, and determine if it’s odd or even

output “Enter an integer”input number

if (number is odd)then{ output: number “ is an odd number”}else{ output: number “ is an even number”}

Page 23: Decision Making & Branching

NESTING OF IF..ELSE STATEMENTS

TestExpression

?

Statement -1Statement -2

Statement- X

False True

TestExpression

?

False True

Statement -3

Next Statement

Entry

Page 24: Decision Making & Branching

The ELSE..IF Ladder

TestExpression

?

Statement -2

TestExpression

?

Statement -1

TestExpression

?

TestExpression

?

Statement -nDefault

statement

Statement -3

Statement -x

NextStatement

Page 25: Decision Making & Branching

The SWITCH Statement

Syntax:switch (expression){case value-1: block-1

break;case value-2: block-2

break;case value-3: block-3

break;…………………….……………………..Default: default block

break;}Statement- x;

switchExpression

block 1

Statement X

defaultblock

block 2

Expression = value 1

Expression = value 2

(no match) default

Page 26: Decision Making & Branching