In this C programming class, we’ll cover the C decision-making constructs such as C if, if-else, and the switch-case statement. It is also known as conditional programming in C.
In your life, you encounter situations where you have to make a decision be it your favorite food dish or the color of your new car. In C programming also, you may encounter such situations where you need to make a decision.
The conditions in C language will help you. C primarily provides the following three types of conditional or decision-making construct.
Don’t miss out on how to write your first C program in just 2 minutes.
If Statement in C
The if statement helps you check a particular condition. If that condition is true, then a specific block (enclosed under the if) of code gets executed.
This flowchart will help you.
C If Syntax:
if(condition either true or false) { //Statement block }
Now we will see a simple program using an if statement.
Program using C If Statement to Find the Greatest of Two Numbers.
Flowchart:
Algorithm:
Step 1: Start. Step 2: Take two inputs (a and b) from the user. Step 3: If a is greater than b then go to step 4 otherwise go to step 5 Step 4: Print a greater than b Step 5: Print b greater than a Step 6: Stop.
Code:
#include<stdio.h> #include<conio.h> void main() { int a,b; printf("Enter two numbers :"); scanf("%d %d",&a,&b); if (a>b) printf("%d is greater",a); printf("%d is greater",b); getch(); }
The output is as follows:
If…Else Statement in C
The if statement works pretty well, but if you want to work with more variables and more data, the if-else statement comes into play.
In the if statement, only one block of code executes after the condition is true.
But in the if-else statement, there are two blocks of code – one for handling the success and the other for the failure condition.
This flowchart will help you get it.
C If…Else Syntax:
if(condition) { //Statement block } else { //Statement block }
Program using C If…Else to Find Whether a Number is Odd or Even.
Flowchart:
Algorithm:
Step 1: Start. Step 2: Take input from the user. Step 3: Check condition. If remainder is zero go to step 4 else go to step 5 Step 4: Print a is even and go to step 6 Step 5: Print a is odd Step 6: Stop
Code:
#include<stdio.h> #include<conio.h> void main() { int a; printf("Enter a number :"); scanf("%d",&a); if (a%2==0) { printf("%d is even",a); } else printf("%d is odd",a); getch(); }
The output should look something like this-
You can use multiple if-else statements which get called “nested if-else” statements. It is no different than the one above you can use various if-else statements in this order. Just keep in mind that the sequence should end with a final else statement, not an if statement.
Switch-Case Statement in C
When you have to execute multiple statements under one operation, Switch-case comes into play.
There are several cases under one switch statement.
C Switch…Case Syntax:
switch(variable) { case n1: //Statement block; break; case n2: //Statement block; break; . . . case n: //Statement block; break; }
Here the variable is taken from the user as input.
Program using C Switch…Case to Calculate the Area of a Rectangle/Circle/Triangle.
Flowchart:
Algorithm:
Step 1: Start Step 2: Initialize variables Step 3: Take input for choice and then for area variables from the user Step 4: Case 1: Circle: 3.14*3.14*r Case 2: Rectangle: ar=a*b Case 3: Triangle: at=0.5*a*b Step 5: Display output according to case Step 6: Stop
Code:
#include<stdio.h> #include<conio.h> void main() { int ac,ar,at,r,a,b,choice; printf("Enter your choice\n”); prinft(“A for area of circle\n”); printf(“B for area of rectangle\n”); printf(“C for area of triangle\n"); scanf("%c",&choice); switch(choice) { case A: printf("Enter radius: "); scanf("%d",&r); ac=3.14*3.14*r; printf("Area of circle is: %d",ac); break; case B: printf("Enter length and breadth:"); scanf("%d %d",&a,&b); ar=a*b; printf("Area of rectangle is: %d",ar); break; case C: printf("Enter base and height: "); scanf("%d %d",&a,&b); at=0.5*a*b; printf("Area of triangle is: %d",at); break; } getch(); }
Output: