In the last tutorial we learned how to use if statement in C. In this guide, we will learn how to use if else, nested if else and else if statements in a C Program.
C If else statement
Syntax of if else statement:
If condition returns true then the statements inside the body of “if” are executed and the statements inside body of “else” are skipped.
If condition returns false then the statements inside the body of “if” are skipped and the statements in “else” are executed.
if(condition) { // Statements inside body of if } else { //Statements inside body of else }
Flow diagram of if else statement
Example of if else statement
In this program user is asked to enter the age and based on the input, the if..else statement checks whether the entered age is greater than or equal to 18. If this condition meet then display message “You are eligible for voting”, however if the condition doesn’t meet then display a different message “You are not eligible for voting”.
#include <stdio.h> int main() { int age; printf("Enter your age:"); scanf("%d",&age); if(age >=18) { /* This statement will only execute if the * above condition (age>=18) returns true */ printf("You are eligible for voting"); } else { /* This statement will only execute if the * condition specified in the "if" returns false. */ printf("You are not eligible for voting"); } return 0; }
Output:
Enter your age:14 You are not eligible for voting
Note: If there is only one statement is present in the “if” or “else” body then you do not need to use the braces (parenthesis). For example the above program can be rewritten like this:
#include <stdio.h> int main() { int age; printf("Enter your age:"); scanf("%d",&age); if(age >=18) printf("You are eligible for voting"); else printf("You are not eligible for voting"); return 0; }
C Nested If..else statement
When an if else statement is present inside the body of another “if” or “else” then this is called nested if else.
Syntax of Nested if else statement:
if(condition) { //Nested if else inside the body of "if" if(condition2) { //Statements inside the body of nested "if" } else { //Statements inside the body of nested "else" } } else { //Statements inside the body of "else" }
Example of nested if..else
#include <stdio.h> int main() { int var1, var2; printf("Input the value of var1:"); scanf("%d", &var1); printf("Input the value of var2:"); scanf("%d",&var2); if (var1 != var2) { printf("var1 is not equal to var2\n"); //Nested if else if (var1 > var2) { printf("var1 is greater than var2\n"); } else { printf("var2 is greater than var1\n"); } } else { printf("var1 is equal to var2\n"); } return 0; }
Output:
Input the value of var1:12 Input the value of var2:21 var1 is not equal to var2 var2 is greater than var1
C – else..if statement
The else..if statement is useful when you need to check multiple conditions within the program, nesting of if-else blocks can be avoided using else..if statement.
Syntax of else..if statement:
if (condition1) { //These statements would execute if the condition1 is true } else if(condition2) { //These statements would execute if the condition2 is true } else if (condition3) { //These statements would execute if the condition3 is true } . . else { //These statements would execute if all the conditions return false. }
Example of else..if statement
Lets take the same example that we have seen above while discussing nested if..else. We will rewrite the same program using else..if statements.
#include <stdio.h> int main() { int var1, var2; printf("Input the value of var1:"); scanf("%d", &var1); printf("Input the value of var2:"); scanf("%d",&var2); if (var1 !=var2) { printf("var1 is not equal to var2\n"); } else if (var1 > var2) { printf("var1 is greater than var2\n"); } else if (var2 > var1) { printf("var2 is greater than var1\n"); } else { printf("var1 is equal to var2\n"); } return 0; }
Output:
Input the value of var1:12 Input the value of var2:21 var1 is not equal to var2
As you can see that only the statements inside the body of “if” are executed. This is because in this statement as soon as a condition is satisfied, the statements inside that block are executed and rest of the blocks are ignored.
Important Points:
1. else and else..if are optional statements, a program having only “if” statement would run fine.
2. else and else..if cannot be used without the “if”.
3. There can be any number of else..if statement in a if else..if block.
4. If none of the conditions are met then the statements in else block gets executed.
5. Just like relational operators, we can also use logical operators such as AND (&&
), OR(||
) and NOT(!
).
Akash Modaj says
All the informations relating to ‘if’ condition are very useful.
Now, you are requested to share how to apply ‘and’ condition.
Thank you!
Emojel John Francis says
how do u grade marks using C programming
imran khan says
A very easy to learn and all the methods used in here and i had learnt if else statement within 30 minutes Thanks you!
Adam says
include
#include
int mainn(){
char ch;
printf(“enter the value char:\n”);
scanf(“%c”,&ch);
switch(ch){
case ‘a’:
printf(“value is:a\n”);
break;
case ‘b’:
printf(“value is :b\n”);
break;
case ‘c’:
printf(“value is :c\n”);
break;
default:
printf(“value is :unknown\n”);
}
return 0;
}
there was no output only its shows me :undefined reference to winmain
error:id return 1 exit status
why? is there any error on my program pls help me…