If statement
The 'if' statement is a powerful decision making statement and
is used to control the flow of execution of statements. It is
basically a two way decision statement and is used in
conjunction with as expression .It takes the following form:-
if (test expression )
It allows the computer to evaluate
the expression first & then depending on whether the value
of the expression (relation(or)condition) is 'true'(non-zero)or
'false'(zero),it transfer the control to a particular statement
.This point of program has two paths follow, one for true
condition & the other for the false condition.
The if statement may be implemented in different forms depending
on the complexity of condition to be tested
- simple if statement
- if …else statement
- nested if …else statement
- else if ladder
1. Simple if statement:
General form: if (test expression) { Statement–block; } Statement –x;
The statement-block may be a single statement (or) a group of
statements. if the test statement is true, the statement-block
will be executed, other wise the statement block will be stopped
& the execution will be jump to the statement –x.
Note:
when the condition is true, both the statement block & the
statement-x are executed in sequence.
Flowchart for
simple-if:
Example: program to find max value of 2 numbers
main() { int a, b,max; printf("Enter any 2 values"); scanf("%d%d",&a,&b); max=a; if(max< b) { max =b; } printf("max =%d",max); getch(); }
2)If-else statement
It is an extension of simple if statement.
Syntax: if(test expression) { True block statement ; } else { false block statement; } Statement-x;
If test expression is true, then the true block statement,
immediately following the if statement are executed ; otherwise
the false block statement () are executed . In either case ,
either true-block(or) false block will be executed, not both.
Example:To check whether given no is even (or) odd
main() { int n: clrscr(); printf("enter any number"); scanf("%d",&n); if(n%2==0) printf("even number is even"); else printf("Given nmber is odd"); getch(); }
Nested if---else statement:
When a series of decision are involved, we may to have to use more than if-----else statement in nested form as follows:
if(test condition) { if(test condition) { Statement-1; } else { Statement-2; } else { Statement-3; } Statement-x; }
If the condition 1 is false , the statement-3 will be
executed otherwise it continues to perform the second test . IF
the condition-2 is true, the statement-1 is evaluated; otherwise
statement -2 will be evaluated & then the control is
transferred to statement-x.
Program to find max of 3
numbers.
#include < stdio.h> void main( ) { int a,b,c,max; printf("enter any 3 numbers"); scanf("%d%d%d",&a,&b,&c); if(a>b) { if(a>c) max=a; else max=c; } else { if(b>c) max=b; else max=c; } printf ("max=%d",max); }
THE ELSE IF LADDER:
There is another way of putting 'if's together when multipath decisions are involved. A multipath decision is a chain of 'if's' in which the stmt associated with each else is an if. It takes the following general form.
if(cond1) Stmt-1; else if(cond2) Stmt-2; else if(cond3) Stmt-3; else if(condn) Stmt-n; else Default stmt; Stmt-x;
This construction is known as else if ladder.
The
conditions are evaluated from the top to bottom. As soon as true
cond is found, the stmt associated with it is executed and the
control is transferred to stmt-x(skipping the rest of ladder)
when all the conditions become false, then the final else
containing the default stmt will be executed.
Example:
Write a program to read in the marks of a student and display
the grade according to the following information using else-if
ladder.
Average Marks Grade 80 to 100 A 60 to 79 B 50 to 59 C 40 to 49 D 0 to 39 F(Fail).
This grading can be done using else-if ladder as follows:
if(marks > 79) grade= 'A'; else if(marks > 59) grade= 'B'; else if(marks > 49) grade= 'C'; else if(marks > 39) grade= 'D'; else grade='F'; printf("Grade is %c",grade);
Program to find maximum of three numbers using else-if ladder.
main() { int a,b,c,max; clrscr(); printf("Enter values of a ,b,c"); scanf("%d%d%d",&a,&b,&c); if(a>b && a>c) max=a; else if(b>c) max=b; else max=c; printf("Maximum is %d",max); getch(); }