The if-else Statement in C

The if statement by itself will execute a single statement, or a group of statements, when the expression following if evaluates to true. It does nothing when the expression evaluates to false. Can we execute one group of statements if the expression evaluates to true and another group of statements if the expression evaluates to false? Of course! This is what is the purpose of the else statement that is demonstrated in the following example

In a company an employee is paid as under:

If his basic salary is less than Rs. 1500, then HRA = 10% of basic salary and DA = 90% of basic salary. If his salary is either equal to or above Rs. 1500, then HRA = Rs. 500 and DA = 98% of basic salary. If the employee’s salary is input through the keyboard write a program to find his gross salary.

/* Calculation of gross salary */

main( ) 
{ 
 float bs, gs, da, hra ; 
 printf ( "Enter basic salary " ) ; 
 scanf ( "%f", &bs ) ; 
 if ( bs < 1500 ) 
 { 
 hra = bs * 10 / 100 ; 
 da = bs * 90 / 100 ; 
 } 
 else 
 { 
 hra = 500 ; 
 da = bs * 98 / 100 ; 
 } 
 gs = bs + hra + da ; 
 printf ( "gross salary = Rs. %f", gs ) ; 
}

A few points worth noting…

  • The group of statements after the if upto and not including the else is called an ‘if block’. Similarly, the statements after the else form the ‘else block’
  • Notice that the else is written exactly below the if. The statements in the if block and those in the else block have been indented to the right. This formatting convention is followed throughout the book to enable you to understand the working of the program better.
  • Had there been only one statement to be executed in the if block and only one statement in the else block we could have dropped the pair of braces.
  • As with the if statement, the default scope of else is also the statement immediately after the else. To override this default scope a pair of braces as shown in the above example must be used.

Nested if-elses

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. This is shown in the following program.

/* A quick demo of nested if-else */

main( ) 
{ 
 int i ; 
 printf ( "Enter either 1 or 2 " ) ; 
 scanf ( "%d", &i ) ; 
 if ( i == 1 ) 
 printf ( "You would go to heaven !" ) ; 
 else 
 { 
 if ( i == 2 ) 
 printf ( "Hell was created with you in mind" ) ; 
 else 
 printf ( "How about mother earth !" ) ; 
 } 
} 


Leave a Comment