decision control statements
TRANSCRIPT
![Page 1: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/1.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 1/46
![Page 2: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/2.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 2/46
Decision Control Statements
Conditional control statements Unconditional control statement
Simple if statement
if-else statement
Nested if-else statement
switch statement
goto statement
![Page 3: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/3.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 3/46
F It is used to execute only one action.
F It is called one way branching.F Here the logical condition is tested which results either
TRUE or FALSE.
The syntax is:if (condition)
statement;
condition true
Execute this
Otherwise it just skip the
statement
![Page 4: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/4.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 4/46
Is
condition
?
statement
Next executable statement
True
False
![Page 5: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/5.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 5/46
main( )
{
int prize, dis;
printf(“Enter the prize of book \n”);
scanf(“%d”,&prize); if(prize>=500)
{
dis=10;
prize=prize-(prize*dis/100);}
printf(“Amount of book=%d”, prize);
getch( );
}
![Page 6: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/6.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 6/46
if(prize>=500)
{
dis=10;
prize=prize-(prize*dis/100);
} printf(“Amount of book=%d”, prize);
Suppose prize is 600
The condition is true
![Page 7: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/7.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 7/46
if(prize>=500)
{
dis=10;
prize=prize-(prize*dis/100);
} printf(“Amount of book=%d”, prize);
Suppose prize is 600 Execute this
dis=10
![Page 8: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/8.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 8/46
if(prize>=500)
{
dis=10;
prize=prize-(prize*dis/100);
} printf(“Amount of book=%d”, prize);
Suppose prize is 600 Execute this
prize=540
![Page 9: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/9.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 9/46
if(prize>=500)
{
dis=10;
prize=prize-(prize*dis/100);
} printf(“Amount of book=%d”, prize);
Suppose prize is 600 Execute this
Amount of book=540
![Page 10: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/10.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 10/46
Isprize>=500
?dis=10
prize=prize-(prize*dis/100)
print “Amount of book=prize”
True
False
Read prize
STOP
START
![Page 11: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/11.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 11/46
Isprize>=500
?dis=10
prize=prize-(prize*dis/100)
print “Amount of book=prize”
True
False
Read prize
STOP
START
![Page 12: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/12.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 12/46
Adding a semicolon at the end of an if statement is a common
mistake.if (prize>= 500);
{
dis=10;
prize=prize-(prize*dis/100);
}
printf(“Amount of book=%d”, prize);
This mistake is hard to find, because it is not a compilation error
or a runtime error, it is a logic error.
Wrong
![Page 13: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/13.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 13/46
The if statement does nothing when the expression evaluates to
false. So to execute another group of statements, we use if-elsestatement.
This is used to execute two statements alternatively.
It is called a two way branching.
The syntax is:
if (condition)statement 1;
else
statement 2;
![Page 14: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/14.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 14/46
The if statement does nothing when the expression evaluates to
false. So to execute another group of statements, we use if-elsestatement.
This is used to execute two statements alternatively.
It is called a two way branching.
The syntax is:
if (condition)statement 1;
else
statement 2;
condition true
Execute this
![Page 15: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/15.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 15/46
The if statement does nothing when the expression evaluates to
false. So to execute another group of statements, we use if-elsestatement.
This is used to execute two statements alternatively.
It is called a two way branching.
The syntax is:
if (condition)statement 1;
else
statement 2;
condition false
Execute this
![Page 16: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/16.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 16/46
Is
condition
?
Statement 1
Next executable statement
TrueFalse
Statement 2
![Page 17: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/17.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 17/46
main( )
{
int n;
printf(“Enter a number \n”);
scanf(“%d”,&n); if((n%2)==0)
printf(“The number is even”);
else
printf(“The number is odd”); getch( );
}
![Page 18: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/18.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 18/46
if((n%2)==0)
printf(“The number is even”);
else
printf(“The number is odd”);
Suppose n is 17 The condition is false
![Page 19: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/19.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 19/46
if((n%2)==0)
printf(“The number is even”);
else
printf(“The number is odd”);
Suppose n is 17 Execute this
The number is odd
![Page 20: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/20.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 20/46
Do not put assignment operator in the place of equal operator.
if((n%2)=0)
printf(“The number is even”);
else
printf(“The number is odd”);
Wrong
Condition is False
Hence the else condition is executed
![Page 21: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/21.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 21/46
If there are more than two alternative statements to be executed, then we use
nested if-else statement.
Here we use if-else statement within the other if-else statement.
The syntax is:
if (condition 1)
{
if(condition 2)
statement 1;
else
statement 2;
}
else
{
if(condition 3)
statement 3;
else
statement 4;
}statement x;
![Page 22: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/22.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 22/46
If there are more than two alternative statements to be executed, then we use
nested if-else statement.
Here we use if-else statement within the other if-else statement.
The syntax is:
if (condition 1)
{
if(condition 2)
statement 1;
else
statement 2;
}
else
{
if(condition 3)
statement 3;
else
statement 4;
}statement x;
If both condition1 and
condition 2 are true Execute this
![Page 23: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/23.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 23/46
If there are more than two alternative statements to be executed, then we use
nested if-else statement.
Here we use if-else statement within the other if-else statement.
The syntax is:
if (condition 1)
{
if(condition 2)
statement 1;
else
statement 2;
}
else
{
if(condition 3)
statement 3;
else
statement 4;
}statement x;
Condition1 true and
condition 2 is false Execute this
![Page 24: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/24.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 24/46
If there are more than two alternative statements to be executed, then we use
nested if-else statement.
Here we use if-else statement within the other if-else statement.
The syntax is:
if (condition 1)
{
if(condition 2)
statement 1;
else
statement 2;
}
else
{
if(condition 3)
statement 3;
else
statement 4;
}statement x;
Condition1 is falseExecute this
Condition 2 is true
![Page 25: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/25.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 25/46
If there are more than two alternative statements to be executed, then we use
nested if-else statement.
Here we use if-else statement within the other if-else statement.
The syntax is:
if (condition 1)
{
if(condition 2)
statement 1;
else
statement 2;
}
else
{
if(condition 3)
statement 3;
else
statement 4;
}statement x;
Condition1 is falseExecute this
Condition 2 is false
![Page 26: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/26.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 26/46
Is
condition2
?
statement x
True False
Statement 1
Is
condition1?
Is
condition3
?
Statement 2 Statement 3 Statement 4
True False FalseTrue
![Page 27: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/27.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 27/46
main( )
{ int n;
printf(“Enter a number \n”);
scanf(“%d”, &n);
if (n==0) printf(“Neither +ve nor –ve”);
else
{
if (n>0)
printf(“No. is +ve”);
else
printf(“No. is -ve”);
}
}
![Page 28: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/28.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 28/46
if (n==0)
printf(“Neither +ve nor –ve”);
else
{if (n>0)
printf(“No. is +ve”);
else
printf(“No. is -ve”);
}
Suppose n is -14The condition is false
![Page 29: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/29.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 29/46
if (n==0)
printf(“Neither +ve nor –ve”);
else
{if (n>0)
printf(“No. is +ve”);
else
printf(“No. is -ve”);
}
Suppose n is -14The condition is false
![Page 30: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/30.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 30/46
if (n==0)
printf(“Neither +ve nor –ve”);
else
{if (n>0)
printf(“No. is +ve”);
else
printf(“No. is -ve”);
}
Suppose n is -14The condition is false
Execute this
No. is -ve
Fl h t
![Page 31: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/31.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 31/46
Flow chart:
True FalseIs
n==0
?
Is
n>0
?
No. is +ve No. is -ve
FalseTrue
Read n
START
Neither +ve nor -ve
STOP
Flow chart:
![Page 32: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/32.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 32/46
Flow chart:
True FalseIs
n==0
?
Is
n>0
?
No. is +ve No. is -ve
FalseTrue
Read n
START
Neither +ve nor -ve
STOP
![Page 33: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/33.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 33/46
The control statement that allows us to make a decision from
the number of choices is called switch. The switch statement tests the value of expression against a list
of case values.
When the match is found, a block of statements associated with
that case is executed.
![Page 34: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/34.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 34/46
The keyword break is
used at the end of each
case to terminate fromthe switch statement.
If the break statement is
not present, the next case
statement will beexecuted.
When none of the
specified cases matchesthe switch-expression,
then the statement
following default are
executed.
switch (expression)
{
case value1: block 1;
break;
case value2: block 2;
break;…
case value N: block N;
break;
default: default-block;}
![Page 35: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/35.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 35/46
main( )
{ char op;
float a, b; printf(“Enter any two no. & the operator +, -, * or / \n”);
scanf(“%f%f%c”, &a, &b, &op);
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;
case „*‟: printf(“%f*%f=%f ”, a, b, a*b);
break;case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;
default: printf(“INVALID OPERATOR”);
}
}
Example: program to preform any one of the arithmetic operation.
![Page 36: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/36.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 36/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*‟: printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
Suppose operator is „*‟:
![Page 37: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/37.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 37/46
switch(op){
case „+': printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*‟: printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
operator is not „*‟:
![Page 38: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/38.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 38/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-': printf(“%f -%f=%f”, a, b, a-b);
break;case „*‟: printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
operator is not „*‟:
![Page 39: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/39.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 39/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*': printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
operator is „*‟:
![Page 40: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/40.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 40/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*': printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
Execute this line
![Page 41: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/41.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 41/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*': printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
Execute this line
![Page 42: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/42.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 42/46
switch(op){
case „+‟: printf(“%f+%f=%f”, a, b, a+b);
break;
case „-‟: printf(“%f -%f=%f”, a, b, a-b);
break;case „*': printf(“%f*%f=%f ”, a, b, a*b);
break;
case „/‟: printf(“%f / %f=%f”, a, b, a/b);
break;default: printf(“INVALID OPERATOR”);
}
getch( );
Execute this line
![Page 43: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/43.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 43/46
The goto statement is used to take control where we want,unconditionally from one point to another in the program.
The goto requires a label in order to identify the place where the
control is to be made.
A label is any valid variable name, and must be followed by a
colon( : ).
The label is placed immediately before the statements where the
control is to be transferred.
![Page 44: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/44.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 44/46
goto label;
- - - - -
- - - - -- - - - -
label:
statement;
label:
Statement;
- - - - -- - - - -
- - - - -
goto label;
Forward jump Backward jump
If the label: is placed after the goto label; some statements will be
skipped and jump is known as forward jump.
If the label: is placed before the goto label; a loop will be formed and
some statements will be executed repeatedly. Such a jump is known as
a backward jump.
Example: program to calculate factorial of a non-
![Page 45: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/45.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 45/46
p p g
negative number
main( )
{ int n, fact=1, i=1;start:
clrscr( );
printf(“Enter a non-negative number”);
scanf(“%d”, &n); if(n<0) goto start;
find:
fact=fact*i;
i++;if(i<=n) goto find;
printf(“Factorial of %d=%d”, n , fact);
getch( );
}
Do not dis-
order
because ittakes
infinite loop
So avoid
goto
statement
as far as
possible
![Page 46: Decision Control Statements](https://reader034.vdocument.in/reader034/viewer/2022052319/577cd03c1a28ab9e7891c13d/html5/thumbnails/46.jpg)
8/12/2019 Decision Control Statements
http://slidepdf.com/reader/full/decision-control-statements 46/46