Post on 11-Apr-2015
description
© Khalid Nazim S.A.
Assistant Professor,
Department of Computer Science & Engineering
PES School of Engineering, Bangalore -100
Chapter 5 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
Entry
TestExpression
True
False
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
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
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
#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}
#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}
#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}
#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!
#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!
#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}
Notes on if
Common mistake
if (number % 2 != 0); { printf ("%d is an odd ", number); } printf ("number\n");
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
Notes on if
Common mistake
if (number = 0) { printf ("%d\n", number); } printf ("%d\n", number);
Notes on ifCommon mistake
if (number = 0) { printf("%d\n", number); } printf("%d\n", number);
Should be ==
Simple if Statement
Syntax:
If (test expression)
{
Statement – block;
}
Statement –x;
TestExpression
?
Statement Block
Statement X
Next Statement
True
False
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
#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”}
#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”}
#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!
#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”}
NESTING OF IF..ELSE STATEMENTS
TestExpression
?
Statement -1Statement -2
Statement- X
False True
TestExpression
?
False True
Statement -3
Next Statement
Entry
The ELSE..IF Ladder
TestExpression
?
Statement -2
TestExpression
?
Statement -1
TestExpression
?
TestExpression
?
Statement -nDefault
statement
Statement -3
Statement -x
NextStatement
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