It is perfectly all right if we write an entire if-else construct within either the body of the if statement or the body of an else statement. This is called ‘nesting’of ifs.
Let’s have an example:
/* A quick demo of nested if-else */
int i ;
printf ( “Enter either 1 or 2 ” ) ;
scanf ( “%d”, &i ) ;
if ( i == 1 )
printf ( “You would go to heaven !” ) ;
if ( i == 2 )
printf ( “Hell was created with you in mind” ) ;
printf ( “How about mother earth !” ) ;
- Note that the second if-else construct is nested in the first else statement. If the condition in the first if statement is false, then the condition in the second if statement is checked. If it is false as well, then the final else statement is executed.
- You can see in the program how each time a if-else construct is nested within another if-else construct, it is also indented to add clarity to the program. Inculcate this habit of indentation, otherwise you would end up writing programs which nobody (you included) can understand easily at a later date.
- In the above program an if-else occurs within the else block of the first if statement. Similarly, in some other program an if-else may occur in the if block as well. There is no limit on how deeply the ifs and the elses can be nested.